Javascript - 多次调用一个函数但只有一个效果

标签 javascript jquery function

我知道我可以轻松解决这个问题,但我正在寻找这种情况下的最佳实践。这是简化版http://jsbin.com/isered/3/edit 。我正在尝试创建一个可重用的函数,但我需要它,以便当触发事件(即单击 anchor 标记)时,它仅附加输出区域一次,而不是每次调用函数时都附加输出区域。

Jquery/Javascript

$(function () {

   function foo () {
      $('a').on('click', function () {
      $('.asdf').append('poo');
    });
   }

   foo ();
   foo ();
});

HTML

<a href='#'>hello</a>
<a href='#'>world</a>

<p class='asdf'></p>

最佳答案

你可以unbind绑定(bind)之前的事件:

function foo () {
  $('a').off('click').on('click', function () {
      $('.asdf').append('poo');       
  });
}

虽然我不明白为什么调用该函数一次且仅一次不是最好的解决方案。

关于Javascript - 多次调用一个函数但只有一个效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11462472/

相关文章:

python - 在类中编写一个函数来生成给定范围内的六个随机数的列表

java - 将一个数组传播到一个函数的多个参数中

javascript - 如何通过用 getElementsByClass 替换 bygetElementById 来使 JavaScript 工作

javascript - 无法运行 knockout

javascript - Chartjs 不渲染图表并且没有抛出错误

javascript - html - javascript 无法以动态生成的 html 形式工作

javascript - 刷新谷歌地图会阻止添加标记的能力

javascript - 将数字添加到给定的N中时找到最大值(JavaScript)

javascript - 如何从 JavaScript 解释器中完全清除变量?

javascript - JQuery 自动完成返回到多个文件