0

私はAjaxで動的コンテンツを取得し、それをdivに入れましたが、問題は、いくつかの子div(動的コンテンツから)のIDが異なることです。だから私はこれらのdivのセレクターを追加しましたが、私が言ったように、それらは動的にロードされ、それはそれらが(別のファイルから)ロードされてdivに挿入される前にどこにも表示されないことを意味します。動的コンテンツを挿入すると問題が発生します。jQueryはこれらのdivを選択できません:(私の問題に対する可能な解決策はありますか?

うーん、私の説明は良くないので、コードで話します:D

例:これは空のdivです <div id="div"></div>

これがjQueryコードです

$(document).ready(function(){
$ .get( "file.php"、function(data){
$( "#div")。html(data);


$( "#somediiv")。click(function(){
alert( "うん");
});

$( "#somediv")。click(function(){
$ .get( "otherfile.php"、function(data){
$( "#div")。html(data);
});
});

$( "#somediv2")。click(function(){
$ .get( "file.php"、function(data){
$( "#div")。html(data);
});
});

});
});

新しいコンテンツが来るまで、すべてが機能します。新しいコンテンツには、「file.php」が読み込まれるときにIDが「somediiv」のdivがあり、クリックすると「otherfile.php」が読み込まれ、このdivのコンテンツには別のdivがあります。 id "somediiv"ですが、jQueryがクリックをキャッチできない場合:(

4

2 に答える 2

1

私はあなたが使用する必要があると思いますlive()。または、のコールバックにイベントを添付します$.get()

于 2009-11-20T19:44:52.267 に答える
0

動的にロードされた各divに、元のdivのクリック機能も含める必要がありますか?powtacは正しいです、ライブイベントはあなたを助けます。何かのようなもの:

$(".someDivClass").live("click",function(){
  $.get("yourFile",function(data){
    $(this).append(data);
  });
});

これは、クリックしたdivにデータを追加することを前提としていますが、実際には指定されていません。また、返されるデータにクラス「someDivClass」のdivが含まれていることを確認する必要があります。

ライブイベントは、一致するセレクターと将来のすべての一致(動的に追加されたものなど)に登録されます

于 2009-11-20T19:50:36.947 に答える