告诉jQuery只执行一次某些代码

wil*_*amg 3 html jquery

有没有办法告诉jQuery只做一次事情?就像现在,我需要jQuery来点击div,附加一些HTML.然后,每当有人再次点击该div时,它会切换隐藏/显示.有没有办法做到这一点?我试着不要太困惑.

编辑:解决了!

SLa*_*aks 18

使用该one方法.

例如:

$('#myDiv').one('click', function() {
    $(this).append('...').click(function() { ... });
});
Run Code Online (Sandbox Code Playgroud)

  • 也许有人赞成解释downvote而不是批准答案的原则? (4认同)

cle*_*tus 8

有多种方法可以做到这一点.

首先,您可以使用标记,然后将其删除:

<div id="mydiv" class="not-initialized">
  ...
</div>
Run Code Online (Sandbox Code Playgroud)

有:

$("#mydiv").click(function() {
  if ($(this).hasClass("not-initialized")) {
    $(this).removeClass("not-initialized");
    // append content
  } else {
    $(this).toggle();
  }
});
Run Code Online (Sandbox Code Playgroud)

其次,您可以更改事件处理程序:

$("#mydiv").click(append_content);

function append_content() {
  ...
  $("#mydiv").unbind("click", append_content).click(toggle_display);
}

function toggle_display() {
  $(this).toggle();
}
Run Code Online (Sandbox Code Playgroud)

或者你可以做一些事情,比如测试div以查看内容是否存在.