2017-04-06 5 views
0

ボタンにクリックイベントを追加し、イベントハンドラでpreventDefaultを呼び出すプラグインがインストールされているサイトで作業しています。javascript/jquery override preventdefault?

同じボタンのclickイベントに応答する必要がありますが、プラグインが有効になっているときにコードが呼び出されることはありません。プラグインがイベントのpreventDefaultを呼び出したためです。

これには方法がありますか?

編集

alert('pageload'); 
document.getElementById('add-to-cart-button-45890').addEventListener('click', function(){ 
alert('addtocart'); 
fbq('track', 'AddToCart', { 
content_ids: ['145890'], 
content_type: 'product', 
value: 45.00, 
currency: 'GBP' 
});}); 
$('#add-to-wishlist-button-145890').on('click',function() { 
fbq('track', 'AddToWishlist', { 
content_ids: ['145890'], 
content_type: 'product', 
value: 45.00, 
currency: 'GBP' 
});}); 

これは私がこれまで試したものです。アラート( 'pageLoad')がヒットしました。私はクリックイベントハンドラを追加するためにjavascriptとjqueryの両方を試しました。

プラグインを無効にしても、コードはうまく動作します。

+1

あなたが試したコードを提供できますか?これが最も役立ちます! :-) –

+4

'preventDefault()'は、作業から割り当てた追加のイベントハンドラを停止しません。 –

+0

ボタンをクリックすると、実際にイベント用に提供したコードが入力されているかどうかを確認する必要があります。 @RoryMcCrossanが述べたように、 'preventDefault()'はボタンのクリックのデフォルト効果を防ぐだけで、ボタンに割り当てられている他のアクションを防ぎません。 –

答えて

0

皆さん、ありがとうございます。 @Mihail - 私のコードでは、コードがヒットしているかどうかを私に知らせるために、クリックハンドラに警告があります。

私は実際にこれを解決しました。プラグインがページの読み込み時に要素を操作していたことがタイミングの問題であったと思われ、イベントハンドラが機能しなくなったと思います。私はwindow.onloadで自分のコードをラップしました。今は上手く動作します