1

我提出了一些发布请求来创建一些 div,我在这些 div 上监听点击事件以触发事件。Leet 拿这些新创建的 div '.mydiv',我不能使用 $('#mydiv').on('click'..) 因为它是动态创建的,所以我使用

$(document).click(".mydiv", function(){
            //triggers some events
        });

但是现在 $(this) 指的是“文档”对象,所以我无法获取被点击的 div 并触发相关事件。我怎样才能做到这一点 ?

编辑:这似乎很有趣,因为我首先调用了一个创建这些 div 的函数,而这正是我称之为点击侦听器的函数中。在这些情况下: $( document ).on( "click" , ".mydiv",...) 不起作用。但是当后者直接放在 html 页面中时,它可以正常工作。(所以至少不是jquery版本问题)

4

3 回答 3

1
$(document).on("click", ".mydiv", function(){
        //triggers some events
});

http://api.jquery.com/on/

阅读Direct and delegated events部分

//  doc or Parent   |    event   |  dyn. created el 
$(    document    ).on( "click"  ,     ".mydiv",      function(){
        //triggers some events
});
于 2013-02-08T12:45:38.623 回答
0

你也可以试试:

$(".mydiv").live("click", function(){
            //triggers some events
        });
于 2013-02-08T12:51:05.813 回答
0

在这种情况下,JQuery 有一种方法可以在选择器上绑定事件。

.live('event', 'handler to be executed') : Attach an event handler for all elements which match the current selector, now and in the future.

检查一下这个小提琴:http: //jsfiddle.net/ff5UJ/

于 2013-02-08T13:41:10.547 回答