0

qwerty.php では、test.php を ajax でロードできます。また、success 関数にロードされたデータを操作したいのですが、うまくいかないようです。

qwerty.php で私のコードは

<div class="qwerty">qwerty</div>

<script src="jquery.js"></script>
<script>

$(function(){

$.ajax({
    type: 'GET', 
    url: 'test.php', 
    success: function(data, textStatus, jqXHR) {
        $(data).find('.test1').click(function(){$(this).toggle();});
        $('.qwerty').before(data);

    }
});


});
</script>

そしてtest.phpには次のものがあります:

<div class="test1">test1</div>
<div class="test2">test2</div>

div私のデータは「qwerty」の前に正しくロードされますが、「test1」をクリックしても何も起こりません。

4

2 に答える 2

1

use filter() since its a string that is returned

try this

success: function(data, textStatus, jqXHR) {
    $('.qwerty').before(data);
    $(data).filter('.test1').click(function(){$(this).toggle();});
}

updated

append the data first and use on delgated event...

success: function(data, textStatus, jqXHR) {
    $('.qwerty').before(data);
}
}); //ajax end


$('.qwerty').on('click' , '.test1' ,function(){
    $(this).toggle();
});        
于 2013-03-28T10:19:36.427 に答える
1

onclick を接続して DOM に$(data)挿入するため、機能しません。dataこれを試して:

success: function(data, textStatus, jqXHR) {
    var el = $(data);
    el.find('.test1').addBack().filter('.test1').click(function(){$(this).toggle();});
    $('.qwerty').before(el);
}

以前find(...).addBack().filter(...)は、セレクターに一致するすべての要素を見つけていました。 find()クラス test one を持つ test1 と test 1 の子要素のみを検索します。filter()すべてのルート要素のみをフィルタリングするため、子要素がある場合、それらの中は検索されません。したがって、構造find(...).addBack().filter(...)

于 2013-03-28T10:26:09.977 に答える