金沙棋牌官方平台

当前位置:金沙棋牌 > 金沙棋牌官方平台 > 【金沙棋牌官方平台】方法的用法深入解析,重

【金沙棋牌官方平台】方法的用法深入解析,重

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-09-03 08:28

使用jquery $('#home').live('pagecreate',function(){})

 1,js有哪些数据类型,数据类型的判断函数?

Query中.live()方法的使用方法

给jquery动态生成的页面元素添加事件?使用livequery插件,或可以使用jquery的live方法。摘录一段live简单使用方法。

$().ready(function() {      
$('#home').on('pagecreate',function(){
  if (string_contains(window.location.hash, "#set") == true)
  {
      var setnum = (window.location.hash.match(/d /));
    $.mobile.changePage("subject_detail.html"   setnum, {transition: "slideup"});
  }
  });
});

String,Number,Boolean,Null,Undefined,Object

今天在写代码的时候遇到一个问题,直接上代码看:
$(function(){
           $(".file").live("click",function(){
                    var task_name=$(this).text();
                    $("#selecting tbody").append("<trclass=gradeA'><tdclass='center'>" task_name "</td></tr>");     
           });  
    });

更多详情还见官网

出现了 Uncaught TypeError: Object [object Object] has no method 'live' 的问题

判断函数有:typeof,instanceof,constructor,prototype

$(".file")对象是从后台传过来的,click肯定是不行的,bind()也无法获取动态添加的元素,因此只能用live(),但是使用live()遇到的问题是表格行会莫名其妙的添加了两行,即绑定事件重复执行了,纠结了一上午终于找到了原因,先看live()方法的介绍。

live(type, [data],fn)

查看了

接下来我们一一对这些进行举例子。

live(type, [data],fn)

概述

$('#home').live('pagecreate',function(){}) $().ready(function() { $('#home').on('pagecreate',function(){ if (string_contains(window.location.hash, "#set") == true) { v...

Js代码  金沙棋牌官方平台 1

概述

jQuery给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效。

  1. var a = 'nihao';  
  2. var b = 222;  
  3. var c = [1,2,3];  
  4. var d = new Date();  
  5. var e = function(){alert('hanshu');};  
  6. 金沙棋牌官方平台,var f = function(){this.name = 'hanmeimei'};  
  7. alert(typeof a);//string  
  8. alert(typeof a == String);// false  
  9. alert(typeof b);// number  
  10. alert(typeof c);// object  
  11. alert(typeof d);// object  
  12. alert(typeof e);// function  
  13. alert(typeof f);// function  
  14. alert(c instanceof Array);//true  
  15. alert(e instanceof Function);//true  
  16. alert(c.constructor === Array);//true  
  17. function A(){};  
  18. function B(){};  
  19. A.prototype = new B(); //A继承自B注意: constructor 在类继承时会出错  
  20. var aObj = new A();  
  21. alert(aObj.constructor === B);// -----------> true;  
  22. alert(aObj.constructor === A);// -----------> false;  
  23. //而instanceof方法不会出现该问题,对象直接继承和间接继承的都会报true:  
  24. alert(aObj instanceof B); //----------------> true;  
  25. alert(aObj instanceof A); //----------------> true;  
  26. //解决construtor的问题通常是让对象的constructor手动指向自己:  
  27. aObj.constructor = A;//将自己的类赋值给对象的constructor属性  
  28. alert(aObj.constructor === B);// -----------> flase;  
  29. alert(aObj.constructor === A);//true  
  30. //prototype  
  31. alert(Object.prototype.toString.call(a) === '[object String]');//true;  
  32. alert(Object.prototype.toString.call(b) === '[object Number]');//true;  
  33. alert(Object.prototype.toString.call(c) === '[object Array]');//true;  
  34. alert(Object.prototype.toString.call(d) === '[object Date]');//true;  
  35. alert(Object.prototype.toString.call(e) === '[object Function]');//true;  
  36. alert(Object.prototype.toString.call(f) === '[object Function]');//true;  

jQuery给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效。

这个方法是基本是的 .bind() 方法的一个变体。使用 .bind()时,选择器匹配的元素会附加一个事件处理函数,而以后再添加的元素则不会有。为此需要再使用一次 .bind() 才行。比如说

 

这个方法是基本是的 .bind() 方法的一个变体。使用 .bind()时,选择器匹配的元素会附加一个事件处理函数,而以后再添加的元素则不会有。为此需要再使用一次 .bind() 才行。比如说

Click here  
可以给这个元素绑定一个简单的click事件:

 

<body>
<div class="clickme">Clickhere</div>
<body>

$('.clickme').bind('click', function() {
 alert("Bound handler called.");     
}); 

2,编写一个js函数,时时显示当前时间,格式:“年-月-日 时:分:秒”

可以给这个元素绑定一个简单的click事件:

当点击了元素,就会弹出一个警告框。

Js代码  金沙棋牌官方平台 2

$('.clickme').bind('click', function() {        
alert("Bound handler called.");     
}); 

然后,想象一下这之后有另一个元素添加进来了。

  1. function nowtime(){  
  2. var nowDate = new Date();  
  3. var year = nowDate.getFullYear();  
  4. var month = nowDate.getMonth()   1;  
  5. var day = nowDate.getDate();  
  6. var hours = nowDate.getHours();  
  7. var minutes = nowDate.getMinutes();  
  8. var second = nowDate.getSeconds();  
  9. return year   '-'   month   '-'   day  ' ' hours ':' minutes  ':' second;   
  10. }  
  11. alert(nowtime());  

当点击了元素,就会弹出一个警告框。

$('body').append('
Another target
');

Js代码  金沙棋牌官方平台 3

然后,想象一下这之后有另一个元素添加进来了。

尽管这个新的元素也能够匹配选择器".clickme" ,但是由于这个元素是在调用 .bind() 之后添加的,所以点击这个元素不会有任何效果。

  1.    

$('body').append('<div class="clickme">Another target</div>');

.live()就提供了对应这种情况的方法。如果我们是这样绑定click事件的:

 

尽管这个新的元素也能够匹配选择器".clickme" ,但是由于这个元素是在调用 .bind() 之后添加的,所以点击这个元素不会有任何效果。

$('.clickme').live('click', function() {
 alert("Live handler called.");      
});

 

.live()就提供了对应这种情况的方法。如果我们是这样绑定click事件的:

然后再添加一个新元素:

3,显示隐藏dom元素

$('.clickme').live('click', function() {
alert("Live handler called.");      
});

$('body').append('
Another target
');

使用jquery

然后再添加一个新元素:

然后再点击新增的元素,他依然能够触发事件处理函数。 

Js代码  金沙棋牌官方平台 4

$('body').append('<divclass="clickme">Anothertarget</div>');

事件委托

  1. $(function(){  
  2. $("#div").show();  
  3. $("#div").hide();  
  4. });  

然后再点击新增的元素,他依然能够触发事件处理函数。 

.live()方法能对一个还没有添加进DOM的元素有效,是由于使用了事件委托:绑定在祖先元素上的事件处理函数可以对在后代上触发的事件作出回应。

 

事件委托

传递给 .live()的事件处理函数不会绑定在元素上,而是把他作为一个特殊的事件处理函数,绑定在 DOM树的根节点上。在我们的例子中,当点击新的元素后,会依次发生下列步骤:

4,如果添加HTML元素的事件处理,几种方法

.live()方法能对一个还没有添加进DOM的元素有效,是由于使用了事件委托:绑定在祖先元素上的事件处理函数可以对在后代上触发的事件作出回应。

1、生成一个click事件传递给<div> 来处理

1,直接元素中添加:

传递给 .live()的事件处理函数不会绑定在元素上,而是把他作为一个特殊的事件处理函数,绑定在 DOM树的根节点上。在我们的例子中,当点击新的元素后,会依次发生下列步骤:

2、由于没有事件处理函数直接绑定在 <div>上,所以事件冒泡到DOM树上

Js代码  金沙棋牌官方平台 5

1、生成一个click事件传递给<div> 来处理

3、事件不断冒泡一直到DOM树的根节点,默认情况下上面绑定了这个特殊的事件处理函数。

  1. <a href="###" onclick="fn();" >click</a>  

2、由于没有事件处理函数直接绑定在 <div>上,所以事件冒泡到DOM树上

4、执行由 .live() 绑定的特殊的click 事件处理函数。

 

3、事件不断冒泡一直到DOM树的根节点,默认情况下上面绑定了这个特殊的事件处理函数。

5、这个事件处理函数首先检测事件对象的target 来确定是不是需要继续。这个测试是通过检测 $(event.target).closest('.clickme')能否找到匹配的元素来实现的。

2,找到dom节点如:

4、执行由 .live()绑定的特殊的 click 事件处理函数。

6、如果找到了匹配的元素,那么调用原始的事件处理函数。

Js代码  金沙棋牌官方平台 6

5、这个事件处理函数首先检测事件对象的 target 来确定是不是需要继续。这个测试是通过检测$(event.target).closest('.clickme') 能否找到匹配的元素来实现的。

由于只有在事件发生时才会在上面的第五步里做测试,因此在任何时候添加的元素都能够响应这个事件。

  1. var ob = document.getElementById("div");  
  2. ob.onclick = function(){};  

6、如果找到了匹配的元素,那么调用原始的事件处理函数。

附加说明

 

由于只有在事件发生时才会在上面的第五步里做测试,因此在任何时候添加的元素都能够响应这个事件。

.live()虽然很有用,但由于其特殊的实现方式,所以不能简单的在任何情况下替换 .bind()。主要的不同有:

3,使用jquery添加静态的dom节点的事件

附加说明

在jQuery 1.4中,.live()方法支持自定义事件,也支持所有的JavaScript 事件。在jQuery 1.4.1中,甚至也支持 focus 和 blue事件了(映射到更合适,并且可以冒泡的focusin和focusout上)。

Js代码  金沙棋牌官方平台 7

.live()虽然很有用,但由于其特殊的实现方式,所以不能简单的在任何情况下替换 .bind()。主要的不同有:

另外,在jQuery1.4.1中,也能支持hover(映射到"mouseenter mouseleave")。然而在jQuery1.3.x中,只支持支持的JavaScript事件和自定义事件:click, dblclick, keydown, keypress,keyup, mousedown, mousemove, mouseout, mouseover, 和 mouseup.

  1. $("#div").click(function(){});  
  2. //动态生成的节点的话:  
  3. $("#div").on("click",function(){});  
  4. $("#div").live("click",function(){});  

在jQuery 1.4中,.live()方法支持自定义事件,也支持所有的JavaScript 事件。在jQuery 1.4.1中,甚至也支持 focus 和 blue事件了(映射到更合适,并且可以冒泡的focusin和focusout上)。

.live()并不完全支持通过DOM遍历的方法找到的元素。取而代之的是,应当总是在一个选择器后面直接使用 .live()方法,正如前面例子里提到的。

 

另 外,在jQuery1.4.1中,也能支持hover(映射到"mouseenter mouseleave")。然而在jQuery1.3.x中,只支持支持的JavaScript事件和自定义事件:click, dblclick, keydown, keypress,keyup, mousedown, mousemove, mouseout, mouseover, 和 mouseup.

当一个事件处理函数用 .live()绑定后,要停止执行其他的事件处理函数,那么这个函数必须返回 false。 仅仅调用 .stopPropagation()无法实现这个目的。

5,如何控制alert中的换行

.live()并不完全支持通过DOM遍历的方法找到的元素。取而代之的是,应当总是在一个选择器后面直接使用 .live()方法,正如前面例子里提到的。

参考 .bind() 方法可以获得更多关于事件绑定的信息。

Js代码  金沙棋牌官方平台 8

当一个事件处理函数用 .live()绑定后,要停止执行其他的事件处理函数,那么这个函数必须返回 false。 仅仅调用 .stopPropagation()无法实现这个目的。

在jQuery 1.4.1中,你可以一次绑定多个事件给 .live() ,跟.bind() 提供的功能类似。

  1. alert('nihaonnihao');  

参考 .bind() 方法可以获得更多关于事件绑定的信息。

在jQuery 1.4中,data参数可以用于把附加信息传递给事件处理函数。一个很好的用处是应付由闭包导致的问题。可以参考 .bind()的讨论来获得更多信息。

 

在jQuery 1.4.1中,你可以一次绑定多个事件给 .live() ,跟.bind() 提供的功能类似。

参数

6,判断字符串中出现次数最多的字符,统计这个次数。

在jQuery 1.4中,data参数可以用于把附加信息传递给事件处理函数。一个很好的用处是应付由闭包导致的问题。可以参考 .bind()的讨论来获得更多信息。

typeString     事件类型

 

参数

data(可选)    Object          欲绑定的事件处理函数

7,判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母,数字,下划线,总长度为5-20

typeString     事件类型

fn                  Function        欲绑定的事件处理函数

 

data(可选)    Object          欲绑定的事件处理函数

示例

8,请编写一个javascript函数parseQueryString,他的用途是把URL参数解析为一个对象,如:

fn                  Function        欲绑定的事件处理函数

HTML 代码:  
Click me!

var url=“http:witmax,cn/index.php?key0=0&key1=1&key2=2”;

示例

jQuery 代码:
    $("p").live("click", function(){
         $(this).after("

 

HTML 代码:

Another paragraph!

很多题目未完待续

<p>Clickme!</p>

");
    });

jQuery 代码: $("p").live("click", function(){
$(this).after("<p>Anotherparagraph!</p>");
});

描述:

描述:

阻止默认事件行为和事件冒泡,返回false

阻止默认事件行为和事件冒泡,返回false

jQuery 代码: $("a").live("click", function() { returnfalse; });

jQuery 代码: $("a").live("click",function() { return false; });

描述:

//根本原因在这,需要阻止默认事件行为和事件冒泡,在代码后面添加return false;就OK了

仅仅阻止默认事件行为

描述:

jQuery 代码: $("a").live("click", function(event){
    event.preventDefault();
 });

仅仅阻止默认事件行为

更多详情还见官网 http:...

jQuery 代码: $("a").live("click", function(event){
event.preventDefault();
});

今天在写代码的时候遇到一个问题,直接上代码看: $(function(){ $(".file").live("click",function(){ var task_name=$(this).t...

本文由金沙棋牌发布于金沙棋牌官方平台,转载请注明出处:【金沙棋牌官方平台】方法的用法深入解析,重

关键词: