2013-07-15 53 views
0

我將我網站上的jQuery從1.4.2升級到jQuery v1.10.1。 我將所有.live函數改爲.on。 現在我遇到了更換其中一個問題。jquery .live to .on in jquery upgrade

function tb_init(domChunk){ 
    $(domChunk).live('click', function(){ 
     var t = this.title || this.name || null; 
     var c = $(this).parent().parent().find('.quotation').html(); 
     var a = this.href || this.alt; 
     var g = this.rel || false; 
     var o = $(this); 
     tb_show2(t,c,a,g,o); 
     this.blur(); 
     return false; 
    }); 
} 

我試圖將其更改爲:

$(document).on("click", domChunk, function() { 

和:

$(document).on("click", $(domChunk), function() { 

但兩者似乎並沒有工作。 domChunk本身就是這樣一個選擇:"#myid li" 我得到的錯誤是:遺漏的類型錯誤:對象#有沒有方法「模糊」

感謝

+0

前刷新頁面,你可以做一個小提琴demoing問題? '$(document).on(「click」,domChunk,function(){'應該可以工作。 – tymeJV

+0

你究竟是在什麼時候發生這個錯誤? – Pointy

+4

'this'是一個dom節點,你可能意思是'o.blur )'而不是。 –

回答

4

this是DOM對象而不是jQuery對象的引用。

試試這個:

$(this).blur(); 

或:

$(this).trigger('blur'); 

或在代碼中使用的o代替$(this)

+2

或者,因爲他已經將它放入本地對象中:'o.blur();' –

+0

@ColinDeClue也是如此。 – Neal

3

我可能是錯的,但你嘗試過使用$(this).blur()而不是this.blur?由於它是一個jQuery函數...

編輯:對不起,我沒有回答