【问题标题】:jQuery live alternative (is there only on()?)jQuery live 替代方案(只有 on() 吗?)
【发布时间】:2013-09-04 13:28:23
【问题描述】:

我使用 live() 在 ajax 数据中使用我的函数。

就像:$(".mydiv").live('click', function(){ alert("blablabla"); })

如果我点击 '.mydiv' 的 ajax 数据,它工作正常

但是'on'方法不支持这个?

$(".removebet").on('click',' i', function(){alert("blablabla");});

如果“i”来自 ajax 数据,则它不起作用。 为什么?我该如何解决这个问题?

【问题讨论】:

  • 两者完全不同
  • .removebet也来自ajax吗?
  • 你应该在任何 Ajax 调用之前声明一个已经在 DOM 中的元素
  • 小帮助:你的第一个例子相当于$(document).on('click', '.mydiv', function () { //blah }),但你应该简单地阅读jQuery文档。
  • 阅读 jQuery 文档以了解如何将 .live 转换为 .on: api.jquery.com/live。我还建议看看learn.jquery.com/events/event-delegation

标签: javascript jquery event-delegation


【解决方案1】:

当调用.on 时,要使用.on 绑定的元素的选择器需要存在。也就是说,如果在调用.on.removebet不存在(听起来好像不存在),.on不会绑定到任何东西。

您最安全的选择是使用

$(document).on("click", ".removebet i" ...

最好选择一个比document更接近目标后代的现有选择器。

【讨论】:

  • 我找到了问题所在。我不能用 'on' ajax 发布。
猜你喜欢
  • 1970-01-01
  • 2013-05-03
  • 2014-04-04
  • 1970-01-01
  • 1970-01-01
  • 2012-05-29
  • 2021-12-03
  • 2019-07-12
  • 1970-01-01
相关资源
最近更新 更多