我应该使用$(文件)

在我的Web应用程序中,我有一个带有AJAX删除/删除按钮的购物车,它会刷新购物车并显示新购物车。

代码是这样的:

$(".delBtn").on("click", function(){ // Code here }); 

会发生什么情况,当显示新购物车时,删除按钮将不再有效。

我现在使用以下代码:

 $(document).on("click", ".delBtn", function(){ // Code here }); 

它按预期工作,但它是最好的选择吗? 高级开发人员或专家是否认为这是错误的代码?

首先,为什么第一个代码片段不起作用。

第一个代码所说的是“选择当前页面上具有”delBtn“类的每个元素,并且当单击它时,运行一个函数。” 但是,当您这样做时,您的按钮不在页面上(因为它尚未添加),因此不会找到任何元素。 相比之下,第二种方法表明,无论何时单击该页面,如果单击的元素具有类“delBtn”,则运行该函数。 因为这只是在网页上查找点击次数,所以它适用于稍后添加的元素

至于原来的问题:

是的,不是。 没关系,但您可能希望将其更改为不同的内容。 这种方式的工作方式是jquery监听文档上的每个click事件,并检查被点击的元素是否与选择器匹配。 因此,每次单击页面上的内容时,jquery都必须运行一些代码。

您可能应该做的是将$(document)更改为包含按钮的任何父元素。 这将有更好的性能,因为jquery只需检查包含按钮的实际元素上的单击事件。