0
$('a').each(function() {
    var clicked = false;
    $(this).bind('click', function() {
        if(!clicked) return !(clicked = true);
    });
});

こんにちは、みんな。<a>というクラスも含む要素のみにこの関数を適用する方法を見つけようとしていますtouch。言い換えると:

関数これに適用されます:

<a href="#" class="touch">

関数はこれには適用されません:

<a href="#">

申し訳ありませんが、私は jQuery 初心者です。

4

2 に答える 2

4

クラスセレクターが必要です(現在の要素セレクターと組み合わせて):

$('a.touch').each(function() {
    var clicked = false;
    $(this).bind('click', function() {
        if(!clicked) return !(clicked = true);
    });
});

jQuery API (特にセレクター セクション) を一読する価値があります。後で時間を大幅に節約できます。

また、jQuery セレクターの大部分は CSS セレクターと同じであることも覚えておく価値があります。CSS について少しでも知っていれば、その知識を jQuery にも適用できます。


each別の注意として、ほとんどの jQuery メソッドは、一致したセット内のすべての要素に適用されるため、おそらくループを取り除くことができます。私の理解が正しければ、すべてa.touchの要素が最初にクリックされたときにリンクをたどらないようにしようとしています。それが正しければ、これを行うことができます:

$('a.touch').one("click", function() {
    return false; 
});

</p>

于 2012-05-30T14:31:14.747 に答える
2

jQuery はCSS セレクターを使用します。セレクターを$('a.touch')、クラスを含むアンカー タグ用、touchまたはクラス$('.touch')を持つ任意の要素用に変更しますtouch

于 2012-05-30T14:33:20.587 に答える