on
とを使用してハンドラーを追加および削除できることはわかっていますoff
。
私が達成しようとしているのはclick
、タッチデバイスとhover
デスクトップで機能するレスポンシブナビゲーションを実現することです。
ウィンドウのサイズを小さいものから大きいものに変更するとコードは機能しますが、縮小すると機能しません(ホバーハンドラーのバインドを解除できません)。
それが助けになるなら、私はブートストラップのドロップダウンメニューを使用しています。
enableHover : function() {
$('.dropdown-toggle').off();
$('.dropdown-toggle').parent().on({ //parent needed for hover
mouseenter: function() {
$(this).addClass('open').find('ul').show();
},
mouseleave: function() {
$(this).removeClass('open').find('ul').hide();
}
});
},
disableHover : function() {
$('.dropdown-toggle').parent().off('mouseenter mouseleave');
$('.dropdown-toggle').dropdown();
}