0

我正在使用我的插件创建各种对象,然后将更多对象附加到它们,因此当我这样做时,我需要选择那些新对象。

我在这里做了非常简单的jsfiddle:http: //jsfiddle.net/6zBGj/2/

现在你可以看到我将itemdiv 附加到了$container,所以当用户点击item我想做某事时,我找不到选择它的方法。

请记住,这是一个插件,我不想像这样选择它:$(".container .item")我需要分别处理每个单独的对象。

PS不介意凌乱的代码,这只是一个例子。

4

3 回答 3

1

如果您首先在内存中创建元素,请在其中附加事件处理程序,然后您可以将该变量附加到父级。像这样:

var $item = $("<div class='item'></div>").click(function() {
    alert("Foo");
});
$container.append($item);

示例小提琴

于 2012-11-23T12:18:52.980 回答
1

div 尚不存在,因此您无法将侦听器附加到它们。您可以做的是将侦听容器内所有 div 的事件委托给容器本身:

$container.on("click", "div", function(){
   $(".event").append("clicked! <br />");
});

这是一个演示:http: //jsfiddle.net/6zBGj/4/

于 2012-11-23T12:19:07.450 回答
1

如果您知道将添加到容器中的内容,那么您可以这样做 - http://jsfiddle.net/aYgvm/

我所做的只是改变:

$("div", $container).live("click", function(){
   $(".event").append("clicked! <br />"); 
});

到:

$($container).on('click','div', function(){
   $(".event").append("clicked! <br />"); 
});

您还应该避免使用live()- Jquery live() vs delegate()

于 2012-11-23T12:19:12.747 回答