ホームページ  >  記事  >  ウェブフロントエンド  >  jqueryホバーイベントをキャンセルしてバインドする正しい方法の詳細な説明

jqueryホバーイベントをキャンセルしてバインドする正しい方法の詳細な説明

黄舟
黄舟オリジナル
2017-06-26 13:24:432174ブラウズ

Webデザインでは、マウスホバーイベントに応答するためにjqueryをよく使用しますが、これはmouseoverイベントやmouseoutイベントと同じ効果がありますが、onを使用してhoverメソッドをバインドするにはどうすればよいですか? offを使用してバインドされたイベントをキャンセルするにはどうすればよいですか?
1. ホバーイベントをバインドする方法
まず、クリックとホバーイベントを a タグにバインドするとします。

$(document).ready(function(){ $('a').on({ hover: function(e) { 
 //Hover event handler 
alert("hover"); },
 click: function(e) { // Click event handler
alert("click"); } }); 
});

a タグがクリックされると、奇妙なことが起こります。バインドされたホバー イベントはまったく応答しませんが、バインドされたクリック イベントは正常に応答します。

しかし、別の方法で書く場合、例えば:

$("a").hover(function(){ alert('mouseover'); }, function(){
alert('mouseout'); })


代わりにmouseenterイベントとmouseleaveイベントを使用する必要があります(これは.hover()functionで使用されるイベントでもあります)
したがって、次のように直接引用できます:

$(document).ready(function(){ $('a').on({ mouseenter: function(e) {
//Hover event handler 
alert("mouseover"); }, mouseleave: function(e) {
 //Hover event handler 
alert("mouseout"); }, click: function(e) { 
// Clickevent handler 
alert("click"); } }); 
});

.hover() は jQuery 自体によって定義されたイベントであるため、ユーザーがマウスエンターとマウスリーブイベントをバインドして呼び出すためのものではありません。実際のイベントなので、もちろん .on() のイベントパラメータとして呼び出すことはできません。 2. hover イベントをキャンセルする方法
バインドされたイベントをキャンセルするには off 関数を使用できることは誰もが知っていますが、この方法を使用する場合、jquery の hover イベントは非常に特殊です。ホバー イベントをキャンセルする場合、バインドされたイベントはキャンセルできません。

$("a").hover(function(){ alert('mouseover'); }, function(){
alert('mouseout'); })

バインドされたホバーイベントをキャンセルする正しい方法:

$('a').off('mouseenter').unbind('mouseleave');

以上がjqueryホバーイベントをキャンセルしてバインドする正しい方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。