0

foreach()私は現在、ループで生成されているこれらの動的な数を持っています:

<div id="<?php echo $data['id']; ?>" data-role="collapsible" data-theme="a">
    <h1 style="white-space: normal"><?php echo $data['text']; ?></h1>
    <center>
        <p><?php echo $data['text']; ?></p>
    </center>
</div>

私が欲しいのは$data['id']、折りたたみ可能なもの<div>が開いたときのパラメーターを使用して、AJAXPOSTリクエストを別のリソースにディスパッチすることです。

メソッドを使用してみましたが、sの.click動的リストに対して機能させることができませんでした<div>。アニメーションが完了するまで(ページの応答性を確保するために)待つ方法が最善の方法だと思います。

誰かがこれを手伝ってくれますか?

4

1 に答える 1

1

動的に生成されるコンテンツの場合は、この方法を使用することをお勧めします.on()。たとえば、次のコードを考えてみましょう。

$('#container').on('click', 'div', function() {
    var id = $(this).attr('id');
    $(this).animate({
        your animation
    }, 5000, function() {
        $.ajax({
            url: "another_resource.php",
            type: "POST",
            data: {
                id: id
            }, //data to be sent
            dataType: "text", //return data type
            async: false,
            success: function(data) {
                console.log(data);
            },
            error: function(data) {
                console.log(data);
            }
        });
    });
}

最初のパラメーターはイベント(複数のイベントに対してスペースで区切ることができます)であり、2番目のパラメーターはターゲット要素または実行する関数のいずれかです。この場合、最後はもちろん実行する関数です。

要求に応じて、アニメーションが完了するとajaxが実行されます。

于 2012-09-09T01:47:27.343 に答える