2

Drupalメニューによって記述されたホバーイベントをオーバーライドしたい。Drupalによって記述されたコードを変更できないので、それを表示してオーバーライドする方法を知りたいです。

4

2 に答える 2

2

ページに含まれるJavaScriptを調べることで、コードがどのように機能するかを確認できます... DrupalのようなCMSでは、jQuery上にJavaScriptが構築されているため、このイベントが追加されている場所を正確に見つけようとすると、針を探すのと似ています。干し草の山で。


$('selector').off('eventName');基本的なケース(つまり、イベントハンドラーが要素に直接アタッチさている場合)では機能しますが、ハンドラーが祖先にバインドされている状況では機能しません。

これを修正する最も簡単な方法は、要素に独自のイベントを追加stopPropagation()し、祖先にバインドされているイベントハンドラーの起動を停止するために使用することです。

$('selector').off('eventName').on('eventName', function (e) {
    e.stopPropagation();
});

...これの省略形は:falseの代わりに渡すことですfunction

$('selector').off('eventName').on('eventName', false);

詳細については、を参照してくださいon()

于 2012-12-24T16:16:04.813 に答える
0

オブジェクトを使用して、eventsオブジェクトに添付されているイベントを確認します。

$('selector').data('events')

または、jQueryイベントをまとめて削除することもできます。

$('selector').off('eventName');
于 2012-12-24T16:09:15.033 に答える