我有以下代码

$("#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 中,我知道这是问题所在,但是我的问题是如何让它知道 html 内容已添加链接 id logoutLink 而无需刷新页面?

有帮助吗?

解决方案

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

其他提示

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

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

http://api.jquery.com/live/ 了解更多信息。

只有在登录系统添加链接后,才需要添加单击handler $("#logoutLink").click(function(event) {},因此我会执行以下操作

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

$(document).ready(function(){
    addHandlers();
});
. 然后,当添加链路时,还要呼叫生成的addHandlers();

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top