2011-07-16 10 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

ここで、あなたはこのイベントを再登録していますか? – kobe

+0

ええ、私はイベントを登録しています。 –

答えて

1

試してみてください。

globalMove.toggleClass('highlight'); 

globalMoveはすでに$(this)を格納しているため、jQueryオブジェクトです。なぜ、$(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で働いています。あなたは儀式であるかもしれません...私は自分のコードをもう一度チェックしようとしています... –

0

使用.on

もう推奨されなくなりました。 jQueryバージョン1.7で廃止され、バージョン1.9で削除された.live()は、.on()メソッドを使用する必要があります。 .on()メソッドを使用した同等の例を次に示します。

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

function doSomething() { 
    // do something 
} 
関連する問題