ホームページ  >  記事  >  ウェブフロントエンド  >  jQuery はデータを非同期的にロードし、イベントを追加します。

jQuery はデータを非同期的にロードし、イベントを追加します。

WBOY
WBOYオリジナル
2016-05-16 16:38:521265ブラウズ

数ヶ月前、プロジェクトでツリーバーに参加したのですが、プラグインをたくさん見た結果、ちょっと面倒だったので自分でプラグインを書いたのですが、毎回問題が発生するようになりました。私はそれを続けました。

当時、プロジェクトはツリー バーを通じて管理されていましたが、管理者は $(".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");
});
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。