-1

这些事件处理有什么区别

       $(document).on("click","selector",function(event){

        });

       $("selector").live("click",function(event){

       });
4

2 回答 2

1

在第一种情况下,事件附加在“文档”DOM 上,对吗?

在第二种情况下,事件附加在“选择器”DOM 上,对吧?

第一个是由 jQuery 选择的:解决方案 1/ 中只有少数元素捕获事件(文档可以附加到每个事件),但在解决方案 2/ 中,页面的许多元素都在内存中,附加到事件。

例如 :

$(".test").live("click",function(event){"do something"}
$(".test1").live("click",function(event){"do something1"}
$(".test2").live("click",function(event){"do something2"}

3 个元素正在监听点击事件,对吧?

现在这些元素在一个 div “myDiv”

$("#myDiv").on("click",".test",function(event){"do something"}
$("#myDiv").on("click",".test",function(event){"do something"}
$("#myDiv").on("click",".test",function(event){"do something"}

只有 myDiv 通过冒泡附加事件点击

但是不要在文档标签上使用on,在几个全局 div 上使用这个功能!

于 2012-08-30T09:12:35.530 回答
0

首先,该.on()方法是您应该使用的实际事件侦听器。

Second .live()曾经是 #1,但在最后一个版本中已被弃用,因此您不应再使用它。

工作方式相同,您可以将其称为相同方式。

于 2012-08-30T09:04:01.130 回答