Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 选择在插件中创建的对象_Jquery - Fatal编程技术网

Jquery 选择在插件中创建的对象

Jquery 选择在插件中创建的对象,jquery,Jquery,我用我的插件创建了各种各样的对象,然后我向它们附加了更多的对象,所以当我这样做的时候,我需要选择那些新的对象 我在这里制作了非常简单的JSFIDLE: 现在您可以看到,我将itemdiv附加到$container中,因此当用户单击item时,我想做一些事情,但我找不到选择它的方法 请记住,这是一个插件,我不想这样选择它:$(“.container.item”)我需要单独处理每个对象 请不要介意混乱的代码,这只是一个例子。如果您首先在内存中创建元素,请在那里附加事件处理程序,然后可以将该变量附加到

我用我的插件创建了各种各样的对象,然后我向它们附加了更多的对象,所以当我这样做的时候,我需要选择那些新的对象

我在这里制作了非常简单的JSFIDLE:

现在您可以看到,我将
item
div附加到
$container
中,因此当用户单击
item
时,我想做一些事情,但我找不到选择它的方法

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


请不要介意混乱的代码,这只是一个例子。

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

var $item = $("<div class='item'></div>").click(function() {
    alert("Foo");
});
$container.append($item);
var$item=$(“”)。单击(函数(){
警惕(“Foo”);
});
$container.append($item);

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

var $item = $("<div class='item'></div>").click(function() {
    alert("Foo");
});
$container.append($item);
var$item=$(“”)。单击(函数(){
警惕(“Foo”);
});
$container.append($item);

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

$container.on("click", "div", function(){
   $(".event").append("clicked! <br />");
});
$container.on(“单击”,“div”,函数()){
$(“.event”).append(“单击的!
”); });

下面是一个演示:

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

$container.on("click", "div", function(){
   $(".event").append("clicked! <br />");
});
$container.on(“单击”,“div”,函数()){
$(“.event”).append(“单击的!
”); });

下面是一个演示:

如果您知道将添加到容器中的内容,则可以执行以下操作-

我所做的只是改变:

$("div", $container).live("click", function(){
   $(".event").append("clicked! <br />"); 
});
$(“div”,$container).live(“单击”,函数()){
$(“.event”).append(“单击的!
”); });
致:

$($container).on('click','div',function()){
$(“.event”).append(“单击的!
”); });

您还应避免使用
live()
-

如果您知道将添加到容器中的内容,则可以执行以下操作-

我所做的只是改变:

$("div", $container).live("click", function(){
   $(".event").append("clicked! <br />"); 
});
$(“div”,$container).live(“单击”,函数()){
$(“.event”).append(“单击的!
”); });
致:

$($container).on('click','div',function()){
$(“.event”).append(“单击的!
”); });

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

而不是为每个div附加一个事件侦听器,为什么不委托给父级呢?我的假设是,他对每个项都要求不同的函数。如果不是,那么正如您所说,委托将是更好的方法。与其为每个div附加一个事件侦听器,为什么不委托给父级呢?我的假设是,他对每个项都要求不同的函数。如果没有,那么正如你所说,授权将是更好的方法。