这里有相当具体的问题。我有以下代码:
$(document).ready(function() {
var cartButArr = document.querySelectorAll(".toCart")
for(i=0; i<cartButArr.length; i++){
cartButArr[i].onclick = cartAdd();
}
});
然后,被调用的函数:
function cartAdd() {
alert("yo!");
}
但是,无论出于何种原因,此for循环均无法正常工作。启动页面时,我连续得到一系列六个警报,而不是单击时都会调用一个警报。我究竟做错了什么?
提前致谢!
最佳答案
一个非常小的拼写错误会阻止循环工作。更改cartButArr[i].onclick = cartAdd();
至cartButArr[i].onclick = cartAdd;
它不起作用的原因是cartAdd()
调用cartAdd()函数,从而触发警报。您多次看到该警报,因为循环每次都调用cartAdd()。您想要做的是将函数分配给回调处理程序,而不调用函数。