2011-07-16 58 views
0

我有一個問題,下面是我的代碼。我使用了toggleClass並在其中傳入了一個css類。現在,如果我沒有使用live()方法,它工作正常。但如果我使用live()方法,它不工作,我陷入這個問題。toggleClass不在正常工作

//無活()方法,它是工作正常

$('#shownColumnsDiv tbody tr').click(function() { 
     globalMove = $(this); 
     globalArray.push(globalMove); 
     index = $('#shownColumnsDiv tbody tr').index(this); 
     alert(index); 
     globalMove.toggleClass('highlight');    
    }); 

隨着活()方法//它不工作細

$('#shownColumnsDiv tbody tr').live("click", function(){ 
     globalMove = $(this); 
     globalArray.push(globalMove); 
     index = $('#shownColumnsDiv tbody tr').index(this); 
     alert(index); 
     globalMove.toggleClass('highlight'); 
    }); 

//這是一個CSS部

.highlight { 
background-color: #0078ae; 
color: white; 
} 
+1

你在哪裏刷新這個事件,它在document.ready中是否正確? – kobe

+0

是的,我正在註冊這個活動。 –

回答

1

嘗試:

globalMove.toggleClass('highlight'); 

globalMove已經是一個jQuery對象了,因爲你在其中存儲$(this),爲什麼要通過編寫$(globalMove)來生成jQuery對象的jQuery對象?

Looks like it's working fine for me?

+0

@Shef ......我正在以同樣的方式做這件事,就像你現在說的儀式一樣globalMove.toggleClass('highlight');那時它也沒有工作。所以我改爲$(globalMove).toggleClass('highlight'); –

+0

@Java_NewBie:它對我來說工作得很好。檢查我的答案上的鏈接。也許你在代碼的另一部分有錯誤,這會阻止JS運行? – Shef

+1

它正在Fiddle.yeah工作可能你是禮儀...我要再次檢查我的代碼... –

0

使用.on代替現場。

現在不再推薦。 現在.live()在jQuery版本1.7中被棄用,並在版本1.9中被刪除,我們需要使用.on()方法。這裏有一個使用.on()方法的等價例子:

$(document).on('click', 'button', doSomething); 

function doSomething() { 
    // do something 
}