2013-03-08 42 views
2

我已將jquery升級到版本1.9.1,但live()函數已損壞。我現在正在將live()遷移到on(),如this post中所述。jQuery 1.9將live()移植到on(),但多個事件不起作用

但是這個senario不工作。可能是因爲它針對的是多個事件,這些事件是「複製」,「粘貼」和「剪切」。在Firefox控制檯中沒有捕獲到任何錯誤。

以前的代碼:

$('#Password').live('copy paste cut', function (e) { 
    e.preventDefault(); 
    alert("Please do not copy-paste your password"); 
}); 

現在:

$('body').on('copy paste cut', '#Password', function (e) { 
    e.preventDefault(); 
    alert("Please do not copy-paste your password"); 
}); 

我想這一個乾淨,漂亮的解決方案。不要三次寫相同的代碼。

謝謝!

+3

似乎很好,在http://jsfiddle.net/arunpjohny/25TZc/ – 2013-03-08 02:38:47

+0

@Arun P Johny哦,我明白了。我的其他代碼可能與jquery 1.9有問題,我會檢查自己。 – 2013-03-08 05:39:16

+0

大問題;如果你嘗試三次寫同樣的代碼,那麼三個處理程序中的任何一個都可以工作,如果是這樣,哪個? – 2013-03-08 08:11:30

回答

1

我終於明白了。這是因爲我忘了把代碼中

$(function(){ 
    ... 
}) 

因此事件是從來沒有獲得註冊。粗心的錯誤:(