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

时间:2009-12-23 02:30:51

标签: jquery html

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

编辑:解决了!

4 个答案:

答案 0 :(得分:18)

使用one方法。

例如:

$('#myDiv').one('click', function() {
    $(this).append('...').click(function() { ... });
});

答案 1 :(得分:8)

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

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

<div id="mydiv" class="not-initialized">
  ...
</div>

使用:

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

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

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

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

function toggle_display() {
  $(this).toggle();
}

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

答案 2 :(得分:4)

您正在寻找one方法。或者,您可以使用hideshow代替toggle

答案 3 :(得分:2)