ホームページ > 記事 > ウェブフロントエンド > jQuery はデータを非同期的にロードし、イベントを追加します。
数ヶ月前、プロジェクトでツリーバーに参加したのですが、プラグインをたくさん見た結果、ちょっと面倒だったので自分でプラグインを書いたのですが、毎回問題が発生するようになりました。私はそれを続けました。
当時、プロジェクトはツリー バーを通じて管理されていましたが、管理者は $(".XX") を使用してデータベースからデータのツリー バーを動的に生成できました。 .click(); メソッド それは不可能です。
1. 以前は jq1.4.3 を使用していましたが、jq1.7 では live() メソッドを使用してこの機能を実現できます
$(‘#div').live(‘click',function(){ //do stuff });
ただし、ライブ メソッドには、トグル イベントなどのサポートされていないイベントもあります。この状況が発生した場合は、それにクリック イベントを追加し、クリック トリガー イベントをシミュレートすれば問題ありません。
$('a').live('click',function(){ $(this).toggle(function(){ alert("q11"); // alert($(this).attr("id")); $(this).parent().children('ul').show(); },function(){ $(this).parent().children('ul').hide(); }); $(this).trigger('click'); /** 之前绑定的click事件,只有点击了才会触发toggle事件,所以就给他加上模拟点击事件,不需要点击直接出发 **/ });
2. jq1.7 以降では、on メソッドを使用します。最初の属性はイベント、2 番目はセレクター、3 番目は実行メソッドです。
$(document).on("click","#d1",function(){ alert("bbbbb"); });