我一直在使用jQuery模板代码(github上的jquery.tmpl.js),它对我来说非常好用。但是,我正在尝试使用委托将事件附加到内容,但它无法正常工作。插入模板后,这是我简化的HTML结构:
<!-- static in the html file -->
<div id="container">
<!-- this div is inserted multiple times by the jquery template code -->
<div class="rule">
<button>Save</button>
</div>
</div>
在我的Javascript中,我有这个设置
$(".rule").live("click", function() {console.log("live click");});
$("#container").delegate("click", ".rule button", function() {
console.log("delegate click");
});
当页面运行时,我可以单击模板插入的按钮,但我只在Firebug的控制台日志中获得“实时点击”消息。代表事件永远不会发生。我已经尝试了几个不同的目标/上下文代理,虽然我认为我上面的内容是正确的,但我无法让它工作。
任何人都有任何我可以尝试的建议,指示或事情吗?
谢谢! 道格
答案 0 :(得分:3)
delegate()
的正确语法是delegate( selector, eventType, handler )
使用
$("#container").delegate(".rule button", "click", function() {console.log("delegate click");});