【问题标题】:jQuery - combination with one() and on() functionsjQuery - 结合 one() 和 on() 函数
【发布时间】:2012-10-31 10:41:53
【问题描述】:

我想使用只执行一次特定函数的one jQuery 函数,但要结合on jQuery 函数,因为元素尚未呈现。

所以,我需要以这种方式使用“on”函数来绑定未渲染元素的函数。

$(document).on('click',',myElement',function(){



});

如何实现'one'功能以便仅在第一次点击元素时执行我的代码?

【问题讨论】:

  • 您是指每个元素一次还是总共一次?
  • 该函数正在执行一些计算并对其他元素执行操作。如果函数执行两次或更多次,则完全没有问题。无论如何,我觉得在每次点击时执行一些 JavaScript 代码是错误的,因为只执行一次就足够了。这是我的担忧。

标签: jquery function bind live combinations


【解决方案1】:

.one() 方法支持事件委托。这意味着回调运行一次,而不是为每个匹配元素运行一次:

$(document).one('click', '.myElement', function() {
    // Do stuff
});

但是,如果您的意思是希望事件处理程序为每个匹配选择器的元素执行一次,最简单的解决方案可能是在处理程序执行后向元素添加一些数据。然后,您可以检查该数据是否存在以确定是否继续使用事件处理程序:

$(document).on('click', '.myElement', function() {
    if (!$(this).data("done")) {
        // Do stuff
    } else {
        $(this).data("done", true);
    }
});

【讨论】:

  • 我相信它总共会运行一次,而 OP 希望每个元素运行一次。
  • 啊,是的,这更有意义。从这个问题看不太清楚。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-14
  • 1970-01-01
  • 2011-03-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多