2016-09-13 18 views
-2

こんにちは、私は特定のクラスで私のページのすべての要素をターゲットにしようとしています。私は、クエリの変更機能を起動する際に問題が発生しています。だから、私はいくつかのことを試してきましたが、まだ発射していません。私はページをロードしてもそれを一度も実行しないと起動時に起動し、「this」に変更機能がないというエラーメッセージが表示されます。しかし、これが明確に示されていることをログに記録すると、チェックボックスになります。とにかくこれは非常に簡単なことでなければならないので、どんな助けもありがたく思っています。jqueryの変更イベントが発生しないのはなぜですか?

 $(".rcbCheckBox") 
      .each(function() { 
        console.log(this); 
        this.change(console.log("Changed")); 
       }); 
     }); 
+0

'this'なりますJSで範囲への参照、ない要素です...:' $(この) ' –

+0

はクール...それを超えると、ロード後にチェックボックスを変更してもまだ起動しません。 – Seamy

+1

あなたのコードが何らかのイベントをリッスンしていないので、 '$(document).on(" change "、" .rcbCheckBox "、function(){あなたのコード});'を試してください... –

答えて

5

あなたはchangeは、jQueryの関数であるので、undefinedを返しますどのthis.changeを呼んでいます。これは、使用を動作させるために:これに代えて

$(this).change(function(){console.log(this)}) 
+0

ありがとうございました....私は何か愚かなことをしていたことを知っていました....ありがとう – Seamy

+0

それはまだ1回以上発射されていません...再びページを読み込むときだけ発射しますが、 – Seamy

+0

あなたはchangeメソッドの引数として関数を渡す必要があります。 – brianyang

1
$(".rcbCheckBox") 
     .each(function() { 
       console.log($(this)); 
      }); 
    }); 

使用$(この)。

デモ:https://jsbin.com/niqefe/2/edit?html,js,console,output

+0

それでは、まだ1回以上発射していません...私はページをロードするときにだけ発砲しますが、チェックボックスを変更しても決してしません。 – Seamy

+0

私はいくつかのデモを作った:一度これが役立つことを願ってこのbinをチェックする:https://jsbin.com/niqefe/2/edit?html,js,console,output – KrishCdbry

+0

'$(this).change(console.log(" Changed "));'意味がありません – charlietfl

0

change()関数はjQueryのAPIの一部です。 プレーンDOMオブジェクトにはjQueryの関数は含まれていません。あなたはjQueryのfuncionにDOMオブジェクトを渡す新しいjQueryオブジェクトを作成することができます。

短いことにより
var checkbox = jQuery(this); 

または、:

var checkbox = $(this); 

はまた、あなたのコードは何console.log("Changed")リターンchangeイベントのハンドラーとして渡し、これは関数ではありません。

あなたは、また、この

$(this).change(function(){ console.log("Changed"); }); 

ような何かを、構文エラーのために外を見る必要があります。あなたの例では、余分な});があります。すべては前述考慮すると、あなたのような何かを試みることができる:

$(".rcbCheckBox").each(function() { 
    console.log(this); 
    var checkbox = $(this); 

    var callback = function(){ 
     console.log("Changed"); 
    } 

    checkbox.change(callback); 
}); 
+0

であることをサポートするためにのみ使用されています。これはまだ1回以上発射されていません...ページをロードするときに発火しますが、 – Seamy

+0

@Seamy、私はあなたの意見を考慮して答えを更新しました – Sam

+0

このために 'each'を使う必要は全くありません – charlietfl

関連する問題