【问题标题】:Cannot hook Click Event from a jTemplate output无法从 jTemplate 输出挂钩 Click 事件
【发布时间】:2015-02-21 17:09:37
【问题描述】:

当使用来自 jTemplate 的 foreach 时,jQuery 不会挂钩到所应用模板中任何 DOM 元素的 .click() 事件。

.live('click', function()) 之类的解决方案不起作用(部分原因是 .live 已被弃用,但引入替代它的替代方法 .on('click', function()) 做同样的事情......),我不知道如何从中获取 Click 事件jTemplate 的结果。

我尝试过的方法:

  • .live('click', function())
  • .click(function())
  • .on('click', function())
  • $(window).load(function())$(document).ready(function()) 中的所有 3 个事件,并且可以在 Script 标签中随意使用
  • 调用.processTemplate()函数前后的所有3个事件

在这一点上,我对如何解决这个问题没有更多的想法。

我的 jQuery 参考版本是 2.1.3,jTemplate 是 0.8.4。

【问题讨论】:

  • 要委托事件,使用例如:$(document).on('click', 'selector', handler);。请参阅文档:api.jquery.com/on BTW,阅读:learn.jquery.com/events/event-delegation
  • 谢谢 A. Wolff,这解决了我的问题。如果您不介意将其发布为答案,以便我将其标记为答案,那就太好了!

标签: javascript jquery jtemplates


【解决方案1】:

对于 jQuery 1.7 及以上版本,委托事件,你应该使用on() 方法并传递选择器参数。

这是一个示例,即使通常最好将其绑定到最近的静态容器,而不是 document

$(document).on('click', 'selector', handler);

您可以阅读以下链接:http://learn.jquery.com/events/event-delegation/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    • 2016-09-22
    • 2013-04-01
    • 1970-01-01
    相关资源
    最近更新 更多