イベント ハンドラを使用して JavaScript 関数を呼び出すボタンがあります。何らかの理由で、イベント ハンドラーが 2 回呼び出されています。
これが私のボタンです(コードを生成するために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"));
});
ここで、アラートを 2 回受け取ります。
ボタンの onclick プロパティで関数 addToCart を呼び出してみましたが、そのようにしようとすると、次のエラーが発生します。
TypeError: '[object HTMLButtonElement]' is not a function (evaluating 'addToCart(0011110421111)')
event.preventDefault() と event.stopPropagation() も試しましたが、どちらも機能しませんでした。
なぜこれが起こっているのか、2回実行するのを止めるためにできること、またはonclick = ""からjavascript関数を呼び出すとエラーが発生する理由はありますか?