2012-01-06 46 views
0

以下链接调用DeleteUser函数并显示下面的消息。当再次点击该链接时,该消息重复,并且每次单击链接时继续这样做。有没有办法阻止这种行为?我试图在点击一次后隐藏链接,但该元素仍然存在,因此当单击共享此消息框的另一个链接时,仍会显示第一条消息。从append()一次点击多次jQuery显示元素

<a href="#" onclick="DeleteUser('{id}','{deleting}')">Delete User</a> 

function DeleteUser(id, deleting){ 

var message = "<h1>Are you sure? All records associated with this user will be deleted also.</h1>"; 

$('#managermsg').append(message); 
$('#managermsg').fadeIn(500); 
$("#usermanager").slideToggle("slow"); 
}; 

回答

0

变化text()html()

与追加添加它每一次,这些人你会更换什么已经存在。

+0

使用HTML()完美的作品。谢谢。 – stevenpepe 2012-01-06 15:46:59

+0

没问题!如果你接受我的答案,如果你使用它会感激不尽(谢谢!) – Evan 2012-01-06 16:01:00

1

您可以使用.one()

$("a").one("click", function() { 
    // do your stuff 
} 

或者你也可以保存该链接已经被点击加入了.data()属性的事实。

$('a').click(function() { 
    var a = $(this); 
    if (a.data('clicked') == 'clicked') return false; 

    // do your stuff 
    a.data('clicked', 'clicked'); 
}); 

无论你做什么,你应该真的放弃内联js(用于可维护性和干净的代码)。

+0

inline js?你能澄清吗? – stevenpepe 2012-01-06 15:48:36

+0

@stevenpepe当你做''你应该让你的javascript与你的HTML分开。 – PeeHaa 2012-01-06 15:54:34

+0

是的,我有时直接写内联,直到一切正常,然后分离出来。谢谢。 – stevenpepe 2012-01-06 16:11:23

0

您可以使用此:

<a href="#" onclick="DeleteUser('{id}','{deleting}'); this.onclick = null;">Delete User</a> 

或者:

<a href="#">Delete User</a> 

$("a").one("click", function(){ 
    DeleteUser('{id}','{deleting}'); 
});