Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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
Javascript jquery如何访问插入DOM的html上的事件_Javascript_Jquery_Ajax_Dom - Fatal编程技术网

Javascript jquery如何访问插入DOM的html上的事件

Javascript jquery如何访问插入DOM的html上的事件,javascript,jquery,ajax,dom,Javascript,Jquery,Ajax,Dom,在我的web应用程序中,我有一个无序列表,其中包含15个加载项。我正在使用ajax从API中获取100个新项目,并使用.append(html)将它们添加到当前的ul。每个li旁边都有一个复选框,选中该复选框时需要调用some\u函数 已渲染的元素能够访问一些函数,但不能访问新加载的函数。如何访问新加载的ajax项上的某些函数?我以前从未处理过这个问题,显然,因为项目没有“呈现”,但它们无法访问函数?这是一个很好的情况,您可以使用jQueryon()函数 您可以阅读更多关于它的信息这是一个很好的

在我的web应用程序中,我有一个无序列表,其中包含15个加载项。我正在使用ajax从API中获取100个新项目,并使用
.append(html)
将它们添加到当前的
ul
。每个
li
旁边都有一个复选框,选中该复选框时需要调用
some\u函数


已渲染的元素能够访问一些函数,但不能访问新加载的函数。如何访问新加载的ajax项上的
某些函数
?我以前从未处理过这个问题,显然,因为项目没有“呈现”,但它们无法访问函数?

这是一个很好的情况,您可以使用jQuery
on()
函数


您可以阅读更多关于它的信息

这是一个很好的情况,您可以使用jQuery
on()
函数


您可以阅读有关它的更多信息

使用事件委派-

$(document).on('change',".YourInputClass", some_function);

使用事件委派-

$(document).on('change',".YourInputClass", some_function);

对于此类场景,您应该使用事件委派。。基本上,您将处理程序绑定到父元素,并通过选择器过滤以触发处理程序

下面是伪代码

$('ul').on('click', '.checkbox', function () {
   some_function.call(this); //maintain the context if it is an external function.
});

对于此类场景,您应该使用事件委派。。基本上,您将处理程序绑定到父元素,并通过选择器过滤以触发处理程序

下面是伪代码

$('ul').on('click', '.checkbox', function () {
   some_function.call(this); //maintain the context if it is an external function.
});

您需要
委派活动。

如果
是动态注入的元素,并且您希望附加click事件

$('staticContainer').on('click', '#div1', some_function);

您需要
委派活动。

如果
是动态注入的元素,并且您希望附加click事件

$('staticContainer').on('click', '#div1', some_function);

没有看到您的代码,我猜您已经将事件处理程序直接绑定到复选框

$('input[type="checkbox"]').click(function(event) {
    // Your code
});
要在创建处理程序后添加内容,您需要使用一个委托处理程序,该处理程序绑定到较低级别、未更改的元素,并将事件冒泡到复选框。我使用了
document
,不过建议将其绑定到更高的dom节点,很可能是复选框添加到的
ul

$(document).on('click', 'input[type="checkbox"]', function(event) {
    // Your code
});

没有看到您的代码,我猜您已经将事件处理程序直接绑定到复选框

$('input[type="checkbox"]').click(function(event) {
    // Your code
});
要在创建处理程序后添加内容,您需要使用一个委托处理程序,该处理程序绑定到较低级别、未更改的元素,并将事件冒泡到复选框。我使用了
document
,不过建议将其绑定到更高的dom节点,很可能是复选框添加到的
ul

$(document).on('click', 'input[type="checkbox"]', function(event) {
    // Your code
});

谢谢大家的提示。直到现在我才真正了解活动代表团。因此,下一个问题是,既然jQuery将支持
.on
,那么始终通过
.on
分配事件是否安全和最佳做法?
.on
无疑为您提供了以后向DOM添加元素并仍然维护处理程序的灵活性。您还将注意到,当它在DOM中冒泡时,如果需要,它还可以用于触发不同元素上的事件。请仔细阅读,我建议您使用:)我用过了,我还会用更多的,谢谢。我在代码中修改了它,一切都很好!谢谢大家的提示。直到现在我才真正了解活动代表团。因此,下一个问题是,既然jQuery将支持
.on
,那么始终通过
.on
分配事件是否安全和最佳做法?
.on
无疑为您提供了以后向DOM添加元素并仍然维护处理程序的灵活性。您还将注意到,当它在DOM中冒泡时,如果需要,它还可以用于触发不同元素上的事件。请仔细阅读,我建议您使用:)我用过了,我还会用更多的,谢谢。我在代码中修改了它,一切都很好!