我有一个按钮,它使用事件处理程序调用JavaScript函数。由于某种原因,事件处理程序被调用了两次。
这是我的按钮(我使用PHP对象生成代码,因此有很多空标签):
<button name="addToCart" value="" size="" onclick="" src="" class="addToCartButton" id="0011110421111" type="button" formtarget="_self" formmethod="post" formaction="" data-mini="true" width="" height="" placeholder="" data-mini="1" onkeypress="" >Add To Cart</button>
这是我的事件处理程序:
$('.addToCartButton').click(function() {
alert("bob");
//addToCart($(this).attr("id"));
});
在这里,我得到了两次警告。
我尝试在按钮的onclick属性中调用addToCart函数,但是如果我这样尝试,我会收到以下错误:
TypeError: '[object HTMLButtonElement]' is not a function (evaluating 'addToCart(0011110421111)')
我也尝试了event.preventDefault()和event.stopPropagation(),但均无效。
有什么想法为什么会发生这种情况,或者我该如何防止其重复执行,或者如果我从onclick中调用javascript函数时为什么会出现错误?
$._data($(".addToCartButton")[0],"events").length
告诉你什么?它应该返回绑定到该按钮的事件数量。 - matewkaclick
属性应该是一个具有多个元素的数组。展开它们中的每一个,并右键单击处理函数。选择“显示函数定义”,您应该可以看到在您的代码中定义每个处理程序的位置。这样您应该能够找到重复的处理程序。 - matewka