我有以下代码
$("#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而没有页面刷新?
答案 0 :(得分:3)
您的问题有点令人困惑,但请尝试使用live()
来绑定您的事件处理程序:
$("#logoutLink").live('click', function(event) {
// ...
有关详细信息,请参阅http://api.jquery.com/live/。
答案 1 :(得分:2)
您的问题不明确,但是您要动态添加链接,您应该使用.live('click', ...)
或新的jQuery 1.7 .on()
。
答案 2 :(得分:0)
只有在登录系统添加链接后才需要添加点击处理程序$("#logoutLink").click(function(event) {}
,所以我会执行以下操作
function addHandlers(){
$("#logoutLink").click(function(event) {
event.preventDefault();
// anything else
}
}
$(document).ready(function(){
addHandlers();
});
然后在添加链接时调用addHandlers();