0

我有以下代码

$("#logoutLink").click(function(event) {

    event.preventDefault();

    var dataString = "action=confirm";

    $.ajax({
        type: "POST",
        url: "requests.php",
        data: dataString,
        success: function(msg) {
            if (msg == "success") {
               alert('logged out');
            } else {
                showNotification("error", "" + msg + "");
            }
        },
        error: function() {
            showNotification("error", "Could not log you out at this time, try again.");
        }
    });

    return false;
});

以及带有 id="logoutLink" 的链接

preventDefault 第一次不起作用,因为登录系统不刷新链接并添加带有链接的 html 内容,其中是注销链接,因此该项目在 html 中不存在,我知道这是问题所在,但是我的问题是如何让它知道已经添加了带有链接 ID logoutLink 的 html 内容而不刷新页面?

4

3 回答 3

3

您的问题有点令人困惑,但请尝试使用live()绑定您的事件处理程序:

$("#logoutLink").live('click', function(event) {
    // ...

有关详细信息,请参阅http://api.jquery.com/live/

于 2012-03-09T21:02:17.360 回答
2

您的问题不清楚,但如果您正在动态添加链接,您应该使用.live('click', ...)jQuery 1.7 或新的 jQuery 1.7 .on()

于 2012-03-09T21:02:37.623 回答
0

您只需要在登录系统添加链接后添加点击处理程序$("#logoutLink").click(function(event) {},所以我会执行以下操作

function addHandlers(){
    $("#logoutLink").click(function(event) {
         event.preventDefault();
         // anything else
    }
}

$(document).ready(function(){
    addHandlers();
});

addHandlers();然后在添加链接时也调用

于 2012-03-09T21:03:01.287 回答