1

我一直在努力想出解决这个问题的办法。我认为 .live() 会有所帮助,但它没有在 jquery 1.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 回答