Javascript 无法在动态创建的元素上绑定函数
我正在用javascript创建一个简单的购物车,一个没有按钮的购物车会是什么样的呢 购物车是用javascript动态创建的,因此页面加载时不存在元素。然而,这不应该是一个问题吗Javascript 无法在动态创建的元素上绑定函数,javascript,jquery,Javascript,Jquery,我正在用javascript创建一个简单的购物车,一个没有按钮的购物车会是什么样的呢 购物车是用javascript动态创建的,因此页面加载时不存在元素。然而,这不应该是一个问题吗 $(".removeFromCart").on("click",function(e){ alert("GO AWAY PLEASE.."); var tuoteID = $(this).attr("data-id"); deleteFromCart(tuoteID); }); 元素(动态创
$(".removeFromCart").on("click",function(e){
alert("GO AWAY PLEASE..");
var tuoteID = $(this).attr("data-id");
deleteFromCart(tuoteID);
});
元素(动态创建)的外观如下所示:
<a href="#" class="removeFromCart" data-id="2">×</a>
但它不会触发。如果我将.replaceFromCart
替换为,例如,p
,则每次单击段落时都会触发
这不是我第一次遇到
.on()
的问题,而且总是需要我一半的头发才能解决,所以也许有经验的人可以告诉我我做错了什么 您需要使用其他版本的jQuery函数进行事件委派。您必须在执行绑定代码时提供存在的静态父级,或者您可以委托给body
或document
$(document).on("click",".removeFromCart", function(e){
alert("GO AWAY PLEASE..");
var tuoteID = $(this).attr("data-id");
deleteFromCart(tuoteID);
});
委派事件的优点是,它们可以从中处理事件
以后添加到文档中的子元素。通过
选择一个元素,该元素保证在
已附加委派事件处理程序,您可以使用委派事件
避免频繁附加和删除事件处理程序
非常感谢。没有stackoverflow我会在哪里…@Christian On jQueryDocs@Mr.Alien在jQuery文档中,我看到了****的文本,其中充满了我不会经常遇到的单词。它有很多例子,但很少能找到一个我可以直接使用的例子;)这个问题被问了很多次,我都记不清了。@PatsyIssa可能吧,但英语不是我的母语,所以要找到正确的单词来获得正确的结果并不是那么容易。我确实在
.live()
或类似的工具中找到了一些解决方案。在你写问题时,请注意这些问题,以便为类似的问题提供建议^^