0

こんにちは、新しく追加された要素にイベントを追加しようとしていますが、うまくいきません。問題を教えてください。

<div class='btn'>Button</div>

<script>
$('.btn').on({
 click: function(){
   $(".btn:last").after("<div class='btn'>Button</div>"); //adding new element
},
mouseenter: function(){
 console.log("in");
},
mouseleave: function(){
  console.log("out");
}
});
</script>

http://jsfiddle.net/8kSMe/

4

1 に答える 1

2

イベント委任...

.on()適切に使用すると、次のように機能します。

$(document).on({
  click: function(){
      $(".btn:last").after("<div class='btn'>Button</div>");
  },
  mouseenter: function(){
    console.log("in");
  },
  mouseleave: function(){
     console.log("out");
  }
}, '.btn');

http://jsfiddle.net/8kSMe/1/

使用.on()した方法を使用することは$('.btn').click()、静的要素に適した方法を使用することに似ています。ただし、ターゲットが動的に追加される場合は、最も近い静的な親 (この場合は ) をターゲットにしてdocument、動的セレクター ( .btn) を渡す必要があります。

ゲストjQueryは私よりもうまく説明できます。jQuery .on()情報ページのDirect and delegated eventsセクションを確認してください。

于 2013-06-22T15:01:41.670 に答える