2009-08-02 8 views
1

私は要素のリストを作成しました。 1つの要素が( 'prev'と 'next'のボタンを使用して)強調表示されていると、 'active'クラスになります。 「要素を追加」ボタンが押された場合、要素はクラス「選択済み」を取得します。アクティブな要素も選択されている場合は、 'add button'を 'remove button'に置き換えます。アクティブな要素から 'selected'クラスを削除します。ここjquery - 定義された状況の<a>ボタンを置き換えます。

は、いくつかのコードです:

if ($('.active').hasClass('selected')) { 
     $('.add').replaceWith('<a href="#" class="add">Usuń zdjęcie</a>'); 
     $('.add').click(function() { 
      $('.active').removeClass('selected'); 
      return false; 
     }); 
    } 
    else { 
     $('.add').click(function() { 
      $('.active').addClass('selected'); 
      return false; 
     }); 
    } 

それは(何も変更を)動作しません。どうしましたか? :|

+0

どのようなエラーが発生しますか? – jammus

答えて

1

私は全くわからないんだけど、私はこの問題は、コードが準備ブロックであるということだと思う、私は多分あなたは


$('.add').click(function() {}); 


$('.add').replaceWith('Usuń zdjęcie'); 
$('.add').click(function() { 
    $('.active').removeClass('selected'); 
    return false; 
}); 

一部を移動する必要があると思います

現在のところ、コードは、クラスが「選択された」クラスをページロードで持つ場合にのみ有効です。後で追加されるクラスではありません。

希望するもの...

+0

ありがとう、それは動作します:) –

0

コードはページの読み込み時にのみ呼び出されますか?そうなら、elseブロック内のコードは決して実行されません。

+0

はい、$(document).ready()にあります。ブロックが、問題は、 'else'アクションは常に実行されている –

関連する問題