0

jqueryを使用してアコーディオンを作成するプラグインを使用しています。ただし、dom が操作される前に jquery 関数が実行されており、関数でターゲットにしている div ID が作成されています。これが私の機能です。

jQuery('#_Offer_Something').click(function(){

      if( !confirm('Delete?') ) { //show confirm dialog
            return false; //do nothing if cancel is clicked (prevent the browser from following clicked link)
      }else{
           window.location.replace("http://stackoverflow.com"); 
    }
});

したがって、divがまだ存在しないため、基本的にこれは機能しません。

4

4 に答える 4

4

編集

特定のケースでは、次を使用できます:.on()

(function($){  // remap the '$' symbol to jQuery

   $(document).on('click', '#_Offer_Something',function(){
   // ^^^^ or 'body' or a parent element
       if( !confirm('Delete?') ) { //show confirm dialog
            return false; //do nothing if cancel is clicked (prevent the browser from following clicked link)
       }else{
            window.location.replace("http://stackoverflow.com"); 
       }
   });

})(jQuery);

上記は、現在非推奨のjQuery.live()メソッドとして機能します。タグの前に
jQueryタグを配置したことを確認してください。<script></body>

于 2012-04-20T19:07:09.420 に答える
2

ページがロードされた後に DOM オブジェクトが動的に作成される場合、関連するオブジェクトの前にイベント ハンドラーがインストールされている場合でも、DOM オブジェクトからのイベントが取得されるように、委任されたイベント処理を使用する必要があります。の動的形式を使用して、jQuery 1.7+ でそれを行うことができます.on()

jQuery(document).on('click', '#_Offer_Something', function(){

      if( !confirm('Delete?') ) { //show confirm dialog
            return false; //do nothing if cancel is clicked (prevent the browser from following clicked link)
      }else{
           window.location.replace("http://stackoverflow.com"); 
    }
});

技術的には、これが機能する方法は、すべてのクリック イベントが祖先チェーンをバブルアップすることです (途中のオブジェクトがバブル プロセスを停止しない限り)。この場合、オブジェクトにクリック ハンドラーをインストールし、セレクターdocumentに一致するオブジェクトで発生したクリック イベントを監視します。#_Offer_Something

最高のパフォーマンスを得るには、実際にはこのイベント ハンドラーをdocumentオブジェクトにバインドしないでください。#_Offer_Something代わりに、イベント ハンドラのインストール時に存在する静的な親オブジェクト ( の一部の親) を選択します。私がdocumentここでオブジェクトを選択したのは、あなたが HTML の残りの部分を開示していないためです。そのため、より良い選択が何であるかはわかりません。

于 2012-04-20T19:10:11.247 に答える
1

jQueryonバインディングを使用するか、要素が挿入された後にのみ要素をバインドします。例については、 http://api.jquery.com/on/を参照してください。簡単な例:

$(document).on('click', '#_Offer_Something', function(){});
于 2012-04-20T19:07:27.447 に答える
0
$(document).ready(function(){
  ... code here ...
});

また

$(function(){
  ... Code here ...
});
于 2012-04-20T19:05:19.930 に答える