0

選択すると、hasClass 検証が正しく機能します。

<div class="row dis">
    <input class="contact button selected" value="Contact Us">
</div>

ただし、jquery を使用して選択したものを削除すると:

<div class="row dis">
    <input class="contact button" value="Contact Us">
</div>

if (!$('.dis > .contact').hasClass('disabled')) {
    $("input.contact").click(function() {

        alert('---');
        $('.contact').addClass('disabled');

    });
}

hasClass は、 の後にまだ無効なクラスを見つけられません$('.contact').addClass('disabled');

したがって、最初のアラートのみが必要です。

デモ:

http://jsfiddle.net/dWGNJ/2/

4

2 に答える 2

0

JSの実行時に要素がない.disabledため、 no.contactは にバインドされclick()ます。

于 2013-10-03T23:45:45.590 に答える
0

あなたはこのようにすることができます..

$('input.contact').on('click',function(){

    if( !$(this).hasClass('disabled') )
    {
        alert('---');
        $(this).addClass('disabled');
    }
});

基本的に、input.contactクリックされたときに、クラスがあるかどうかを確認します.disabled-そうでない場合は、クラスをトリガーしalertてクラスを追加し.disabledます-これにより、2回目にクリックしたときにトリガーされなくなります

または、もう少しエレガントな方法で行うこともできます。

$('.dis').on('click','input.contact:not(.disabled)',function(){
    alert('---');
    $('.contact').addClass('disabled');
});

同じコンセプト。

于 2013-10-03T23:50:03.770 に答える