以下链接调用DeleteUser功能并显示以下消息。再次单击链接时,将重复该消息,并在每次单击链接时继续执行此操作。有没有办法阻止这种行为?我曾尝试在单击链接后隐藏链接,但元素仍然存在,因此当单击另一个共享此消息框的链接时,仍会显示第一条消息。
<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 :(得分: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(为了可维护性和干净的代码)。
答案 1 :(得分:0)
从append()
更改为text()
或html()
附加你每次添加它,与其他人一起你将替换已经存在的那些。
答案 2 :(得分: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}');
});