0


0

JQueryは複数のフォームイベントを1行でキャプチャしますか?

id = "form1"のフォームのチェックボックスチェックイベントをキャプチャするには、次のものがあります。

$('#form1 :checkbox').click(function() {
  var $this = $(this);
  alert($this.val());
}

イベントを処理する必要のあるチェックボックスを持つ別のフォーム(id = "form2")ができました。 両方のフォームを1行に結合し、「アラート」に正しい値をポップアップさせる方法はありますか? i.e. 何かのようなもの

$('#form1 OR #form2 :checkbox').click(function() {
  var $this = $(this);
  alert($this.val());
}

3 Answer


0


次のようにhttp://api.jquery.com/multiple-selector/[multiple-selector]を使用して実行できます。

$('#form1 :checkbox, #form2 :checkbox').click(function() {

または、http://api.jquery.com/find/ [.find()]を使用して、次のように少し短くします。

$('#form1, #form2').find(':checkbox').click(function() {


0


これを試して:

$('#form1, #form2').find('input:checkbox').click(function() { ... });

'' '' '

編集:これはサイドノートですが、「:checkbox」の代わりに「input:checkbox」を使用します。 これにより、セレクタエンジンは、チェックボックスである_all_タグではなく、チェックボックスである_input_タグのみをフィルタリングできるため、はるかに高速です。


0


_ 両方のフォームを1行に組み合わせて、アラートに正しい値をポップアップさせる方法はありますか? _

Yes:

コンマを使用する

$('#form1 :checkbox, #form2 :checkbox').click(function() {
  var $this = $(this);
  alert($this.val());
};

または「add」メソッドを使用する

$('#form1 :checkbox').add('#form2 :checkbox').click(function() {
  var $this = $(this);
  alert($this.val());
};

詳細情報: