1

私はこの問題の解決策を考え出そうとしてきました。.live()が役立つと思いましたが、jquery1.9.1では使用されていません

私はこの機能を持っています-その要点はこれです:

while($row = $result->fetch_assoc()) {
    $currentID = $row['UserID'];
    $query2="SELECT FirstName, LastName, UserID FROM Users WHERE UserID = $currentID";
    $result2 = $mysqli->query($query2);
    $row1 = $result2->fetch_assoc();
    echo '<div class="commentEntry">';
    echo "<h5><a href='user.php?User=".$row1['UserID']."'>".$row1['FirstName']." ".$row1['LastName']."</a></h5>";
    echo "<p>".$row['Content']."</p>";
    echo "<p class='agree'><a href='#' class='agreeWith' id=".$row['commentID'].">Agree</a></p>";
    echo "</div>";
}

この機能は機能しますが、問題ではありません。したがって、基本的にjqueryを使用して、動的に追加されたa.agreeWithのすべてのインスタンスを取得したいと思います。

テストするために、私はこれを使用しています:

$(document).ready(function() {
     $('a.agreeWith').click(function(event) {
        event.preventDefault();
        alert("test");
        var agree = $(this).id;
        var data = 'Agree='  + agree.val();
    });
});

今私が見つけたのは、アラートが表示されないということです。a hrefリンクは引き続きトリガーされるため、明らかに呼び出しはありません。

ページに何かを書き込むだけでテストしましたが、機能し、アラートが表示されます。

したがって、動的に読み込まれる情報とそれにjqueryを適用しようとすると明らかに問題が発生します。

質問は。これを回避するにはどうすればよいですか?

ご協力いただきありがとうございます。

4

1 に答える 1

1

これは、少なくともアラートを機能させるために機能するはずです。後で何をしようとしているのかわからない...

$(document).ready(function() {
     $(document.body).on('click', 'a.agreeWith', function(event) {
        event.preventDefault();
        alert("test");
        var agree = $(this).id;
        var data = 'Agree='  + agree.val();
    });
});
于 2013-03-26T04:16:59.533 に答える