0

クリックすると別のボタンにクラスが追加されるボタンがあります。次に、そのボタン用に設定されたセレクターがありますが、クラスが存在する場合のみです。最初のボタンがクリックされていない場合、2 番目のセレクターは無効になります。ただし、最初のボタンをクリックしても機能しません。

私はこれをカバーするのに慣れていると思っ.live()ていましたが、後で(一度live廃止されました).on()これをカバーするでしょう。

私が何をする必要があるか知っている人はいますか?

http://jsfiddle.net/p39gZ/1/

jQuery

$('#button1').click(function(){
    $('#button2').addClass('active');
});

$('#button2.active').on('click', function(){
    alert("");
});

HTML

<input type="button" id="button1" value="Add Class" />
<input type="button" id="button2" value="Button with event listener" />
4

3 に答える 3

3

クリック イベントを、DOM のロード時に存在するコンテナー要素にバインドし、.on() メソッドを使用してアクティブ クラスをパラメーターとして渡す必要があります。以下の例は、両方のボタンをラップする「コンテナ」の id を持つ div を使用しています。

 $('#container').on('click', '.active', function() {
      alert('clicked');
 });

フィドル: http://jsfiddle.net/p39gZ/2/

于 2013-08-05T10:49:53.770 に答える
1

.hasClass()を使用してこれを試すこともできます

$('#button2').on('click', function () {
    if ($(this).hasClass('active')) {
        alert("active");
    }
});

JSFiddle

于 2013-08-05T10:52:45.847 に答える
0

このようにしてみてください

$('#button2').on('click', function(){
    if($(this).attr('class') == "active")
        alert("Active Clicked");
});

このデモを参照してください

于 2013-08-05T10:51:25.197 に答える