hover
event
実が、2つのイベント、mouseenter
とmouseleave
のハンドラを結合する速記法ではなく、(hereに示すように)のような.one
では動作しません。それは一度だけ発動することを除いて、
$("#foo").one("mouseenter mouseleave", function(e){
$(this).toggleClass("bar");
});
が上記以下と同じになります:hover
の動作を再現するには、両方のは、このように、一度だけトリガする2つのバインドを持っている必要があるだろう:
$("#foo").hover(function(){
$(this).toggleClass("bar");
});
あなたはmouseenter
とmouseleave
に異なった事をしたい場合は、別のハンドラをバインドする必要があります。
$("#foo").one("mouseenter", function(e){
$(this).addClass("bar").text("Over");
}).one("mouseleave", function(e){
$(this).removeClass("bar").text("Out");
});
W
あなたの質問に関係のない
$('#ask').one('mouseenter', function() {
$('#homesearch-after').hide(300);
$.doTimeout(300, function() {
hideClosedSearchLink();
showHomeSearch();
});
});
が、あなたのように、直接その中にコードを追加することで、タイムアウトを取り除くことができます:私はあなたのコードから読み取ることができます帽子は、あなただけのように、
mouseenter
イベントをバインドするために探しているということです –