0

顧客イベントの定義とトリガーに関する一般的な質問があります。

jQuery(document).on('btn.hover', function () {
    jQuery('.orange_bubble').hover(function () {
        jQuery(this).addClass('hover');
    }, function () {
        jQuery(this).removeClass('hover');
    });
});

これで、トリガー イベントを呼び出して、このイベントを 1 回発生させることができます。

jQuery(document).trigger('btn.hover');

ajax または js 経由でコンテンツを生成する場合、新しい要素でイベントを再バインドする必要があります。

だから私はそれをもう一度トリガーします:

$.ajax{
   bla
   success: {
      jQuery(document).trigger('btn.hover');
    }
}

イベントをスタックせずにこれを行うにはどうすればよいですか。私は今この問題を抱えています。私はいくつかの顧客イベントを使用していますが、すべての要素で再開する必要がある場合がありますが、1 回だけでスタックはありません。

イベントを一度に発生させるためのベストプラクティスは何ですか? それらがdom内のいくつかの要素に設定されている場合は?

助けてくれてありがとう

4

2 に答える 2

1

まず、イベント委任を使用する場合、新しく追加された要素にイベントを再バインドする必要はありません。JQueryページから

委任されたイベントには、後でドキュメントに追加される子孫要素からのイベントを処理できるという利点があります。委任されたイベント ハンドラーがアタッチされたときに存在することが保証されている要素を選択することで、委任されたイベントを使用して、イベント ハンドラーを頻繁にアタッチおよび削除する必要がなくなります。

次のようなものを使用できます。

$( "//container of .orange_bubble elements" ).on( "hover", ".orange_bubble", function() {
  //your content
});

これにより、イベントを「積み重ねる」こともできなくなります

于 2013-09-26T13:09:01.007 に答える