2012-04-10 5 views
0

フルタイムのjQueryやJavascriptの開発者ではありません。私はクラスの交換のためのライブ関数のようなものが必要だと思います。セレクタに結びついている値を扱うためです。toggleClassを使ってイベント処理を新しいクラスに更新する

<span id="enable-1695" data-id="1695" class="enable-item">enable</span> 

は私がする更新するtoggleClassを使用したいのですが可能-項目:有効にするため

<span id="enable-1695" data-id="1695" class="unenable-item">unenable</span> 

:unenablingため

私は基本的にはこのようになりますマークアップを持っていますunenableがクリックされた後。また、ランタイムをこれらの新しい値に更新するセレクタが必要です。私はこれがライブメソッドを介して発生することを使用していたと思います。どのように私はこれを達成するだろう。現在は手動で行っていますが、Javascriptランタイムはイベント処理を正しく更新しません。

正しく動作するようにするにはどのようなJavaScriptを使用しますか?

ヘルプが必要です。まず、おそらく「無効」

THX

+0

"ランタイムをこれらの新しい値に更新する"とはどういう意味ですか? – shashi

+0

基本的に、enable-item/unenable-itemのaddClass/removeClassを介してクラスを更新した後、古いイベントハンドラを指し示しており、新しいイベントハンドラに更新する必要があります。私はこれがライブで処理されたとは思いますが、今はどうしたらよいか分かりません。 – timpone

+0

あなたが探しているものは完全にはわかりませんが、on()を見てみるように聞こえます。それはあなたの問題を解決する必要がありますhttp://api.jquery.com/on/ – AJak

答えて

0

は、もっと良い言葉、選択肢ここかもしれないが、我々は文法をnitpickためにここじゃない...

私はあなたが "をクリックしたときと仮定しますunenable 『有効リンク」リンクは、それがために変更する必要があります』:

$('.unenable-item').live('click', function() { 
    $(this) 
     .removeClass('unenable-item') 
     .addClass('enable-item') 
     .text('enable'); 
    doSomethingWith($(this).data('id')); 
}); 
$('.enable-item').live('click', function() { 
    // the inverse of the above 
}); 

ここで、私はちょっと、みかん、それは実際には付着しないことを除いて、.onまたはその非推奨別名.bindのようなものですlive機能を使用しましたイベントハンドセレクタで選択されたオブジェクトに移動します。代わりに、ドキュメントにハンドラを添付し、何かをクリックするたびにセレクタをチェックして、一致するかどうかを確認します。また、よりターゲットを絞った照合に.delegateを使用することもできます。これらの事柄のより良い説明は、ドキュメンテーション(リンク)にあります。

関連する問題