-1

私はこの条件を実行したい:

 if ( this div has NO class firing on) {

      // do nothing when click on it

   } // else do something

出来ますか?

他の学生チームとのコラボレーションのコーディングの制約であるため、私はこのようにする傾向があります。しかし、それが混乱して不明確であるならば、私の質問を申し訳ありません。

4

5 に答える 5

3

質問を正しく解釈したかどうかはわかりませんが、イベントがトリガーされた要素に特定のクラスがある場合にのみ、特定のコールバックを実行したいと考えています。その場合、コールバックで次のようなことができます。

$("#someId").on("click", function () {
   if (!$(this).hasClass("someClass"))
      return false;

   // Do your stuff here, if we get here, the element has the desired class
});

このソリューションでは、イベントをキャプチャしますが、目的のクラスが要素に含まれていない場合は、何もせずにコールバックを早期にエスケープします。

アップデート:

特定のクラスを探しておらず、クラスがまったくないことを確認したいだけの場合は、代わりに次のようにすることができます。

$("#someId").on("click", function () {
    if ($(this).prop("class").length === 0)
        return false;

    // Do your stuff here, if we get here, the element has no class
});
于 2013-02-15T15:21:56.633 に答える
2

要素にクラス(空のクラスではない)があるかどうかを委任して確認できます-今では、divにクラスがある場合にのみトリガーされます

$('parentelement').on('click','div:not([class=""])[class]',function(){

});
于 2013-02-15T15:32:07.457 に答える
1

あなたは間違った方法でそれをやっています。操作したいクラスをdivに追加すると、セレクターまたはhasClassを使用できます。

于 2013-02-15T15:23:15.283 に答える
1

これは問題の非常に漠然とした説明であり、非常に一般的な答えです。

$('div').each(function() {
    if (!this.hasAttribute('class')) { //has no class
        $(this).off(); //requires the use of on(), but removes all event handlers
    }
    $(this).on('click', ...)
});
于 2013-02-15T15:24:01.423 に答える
1

あなたの質問がわかりません。しかし、私はあなたがこのようなものが欲しいと思います。

if($(this).hasClass('anyClass')){
//do nothing
return false;
}else{
//Do something
}

注: 間違った方法で達成しようとしています。いくつかの代替方法を考えてみてください。

于 2013-02-15T15:32:17.673 に答える