jQuery在多次点击时显示元素一次

时间:2012-01-06 15:30:28

标签: jquery

以下链接调用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");
};

3 个答案:

答案 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}');
});