2012-04-05 146 views
-1

我正在嘗試使用jQuerymouseentermouseleave事件,但是失敗。Jquery .on和.off不能使用mouseenter和mouseleave事件

這裏就是我試圖做

$("#selector").mouseenter(function(){ 
     some code.... 
     jQuery(this).off('mouseenter'); 
    } 
); 
$("#selector").mouseleave(function(){ 
    some code.... 
    jQuery(this).on('mouseenter'); 
}); 

在這種.off()正在可惜.on不工作。

任何人都可以幫助我嗎?

Thx提前。

>

編輯: 對不起,在我上面的問題的信息較少。

我需要打開工具提示mouseenter,並在該工具提示中有一些按鈕。此工具提示附加在同一個div中。所以當我嘗試點擊工具提示中的按鈕時,它會調用mouseenter事件,因此tooltip會再次附加到div中。 所以我打電話.off()事件一次tooptip被調用,直到鼠標不離開選擇器。

讓我知道你是否需要更多信息。

Thx再次。

+0

您沒有將函數傳遞給'.on' ...此外,您正在嘗試執行的操作並不是必需的。 – Esailija 2012-04-05 15:10:12

回答

1

您需要將事件重新綁定到處理程序。 $(this).on('mouseenter');不會綁定任何處理程序。

嘗試使用功能綁定的處理程序,以便它可以再次取而代之的onoff使用界.one

$("#selector").one('mouseenter', selMouseEnter); 

$("#selector").mouseleave(function(){ 
    some code.... 
    $("#selector").one('mouseenter', selMouseEnter); 
}); 

function selMouseEnter() { 
    some code.... 
} 

編輯:你正在嘗試做的可以用.hover或簡單地實現實施.mouseenter.mouseleave函數。不需要bind/unbind,因爲這些函數在mouseenter和mouseleave上調用一次。

+0

很酷,它工作。 – Shashi 2012-04-05 15:57:40

+0

@Shashi歡迎來到stackoverflow和請閱讀http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work來了解SO(stackoverflow)如何工作。 – 2012-04-05 16:15:45

0

onoff方法不用於打開和關閉事件,它們用於綁定和解除綁定事件。

所以,這樣的:

$("#selector").mouseenter(function(){ 
    some code.... 
}); 

不一樣:

$("#selector").on("mouseenter", function(){ 
    some code.... 
}); 

和:

$("#selector").bind("mouseenter", function(){ 
    some code.... 
}); 

您不必解除綁定事件,而鼠標懸停該元素,只處理mouseentermouseleave事件:

$("#selector").mouseenter(function(){ 
    some code.... 
}).mouseleave(function(){ 
    some code.... 
}); 
0

什麼你正在嘗試做的可以簡單地用實現:

$("#selector").mouseenter(function(){ 
    some code.... 
}).mouseleave(function(){ 
    some code.... 
}); 

沒有需要重新綁定與解除綁定。

此外,您正在使用.on錯誤,您還需要傳遞一個函數。見.on docs

相關問題