1

クリックイベント関数を送信ボタンに接続する次のコードがあります。event.targetと は常に同じではないことを認識してthisいます (イベントがどこにアタッチされ、誰が実際に発火したかによって異なります) が、この場合、イベントはボタンにアタッチされ、ボタンもそれを発火したため、それらは同じ。それとも私が間違っていますか?

 modals.init = function () {
    // wire up submit() function to the submit button
    modals.config.$submitBtn.on('click', submit);
  };

  function submit(event) {
    event.preventDefault();
    var $this = $(this);
    alert(event.target.id); // fine
    alert($this.id); // undefined
}
4

4 に答える 4

5

$this.attr("id")(jQuery要素)またはthis.id(DOM要素)です

于 2012-11-13T11:56:16.857 に答える
2

はい、ではthis === event.target

しかし、jQueryそれをラッパーにラップすると、idプロパティがなくなります。this.idまたはを使用$(this).attr('id')して、属性を取得するか、$(this).prop('id')を取得できthis.idます。

于 2012-11-13T11:57:35.477 に答える
1

この場合、this はクリックされた要素に限定されるため、.idプロパティはなく、クリックされた要素の jQuery 表現です。

于 2012-11-13T11:56:15.593 に答える
1

コード$(this)を使用して jquery オブジェクトを生成し、jquery 関数を使用する必要がありますalert($this.attr("id));

于 2012-11-13T11:57:22.800 に答える