2

「disablelink」クラスがない場合を除いて、このhref要素が「click」イベントを発生させることをどのように確認しますか。

処理しないでください:

<a class="iconGear download disablelink" href="#">Download</a>

処理する:

<a class="iconGear download" href="#">Download</a>

成功せずにこれを試しました:

    $("a.download").not(".disablelink").click(function (e) {
        alert('in');
        e.preventDefault();
    });
4

4 に答える 4

6

これは機能するはずです:

$("a.download:not('.disablelink')").click(function (e) {
    alert('in');
    e.preventDefault();
});

disablelinkクラスが動的に追加されている場合:

$(document).on('click', "a.download:not('.disablelink')", function (e) {
    alert('in');
    e.preventDefault();
});

このデモを確認してください:http ://jsfiddle.net/d3rXr/1/

于 2012-11-06T13:50:39.513 に答える
0
$('a.download').click(function(e){
    e.preventDefault();
    if($(this).hasClass('disablelink')){
        return;
    }else{
      //other stuff;
    }
});

アンカーがクリックされたときにチェックしてみませんか。アンカーにクラスがある場合は、アンカーが返され、何も実行されません。これは、より読みやすいコードだと思います。

于 2012-11-06T13:48:57.683 に答える
0

あなたはこのように行くことができます:

$("a.download").click(function(e) {
    if($(this).hasClass("disablelink")) {
        return false;
    }
    // Normal code
    alert('in');
    e.preventDefault();
});
于 2012-11-06T13:49:21.457 に答える
0

まず、一部のリンクにはdisablelinkが動的に追加されており、クリックハンドラーが既にバインドされているため、これはおそらく機能しません。

次に、次のように、クリックハンドラー内でそのクラスを確認する必要があります。

$("a.download").click(function (e) {
    if($(this).hasClass('disablelink')){
       e.preventDefault();
       // link is disabled
    }else{
       alert('in');
       // link is active
    } 
});
于 2012-11-06T13:49:36.390 に答える