在我的网页上,我有一个动态追加到我页面的div元素。
在该div中,我有一个链接,点击后,它会使用ajax从我的服务器中提取数据。
<div class="main-div">
<a href="#" class="pull-data"><b>Click Here</b></a>
</div>
如果我在页面上的jQuery中有一个on click事件,它可以正常工作:
$("a.pull-data").on("click", function(e) {
console.log("Clicked!");
}
然而,当我尝试将其转换为coffeescript时,就像这样,没有任何东西被触发:
jQuery ->
$("a.pull-data").on "click", ->
console.log "Clicked?"
我的coffeescript中是否缺少某些东西?如何修复我的coffeescript以使其捕获动态添加元素的点击?
答案 0 :(得分:0)
您的两个代码示例不相同:
$("a.pull-data") // create a jquery object matching the CSS selector
.on("click", function(e) { // add a click handler that
console.log("Clicked!"); // logs "Clicked!" to the console
});
这是你的咖啡因的转换版本:
jQuery(function() { // pass anon fn to jQuery constructor
return $("a.pull-data").on("click", function() { // returning a fn that
return console.log("Clicked?"); // attaches the click handler
});
});
这是创建一个匿名函数,它可以完成你想要的所有东西,然后将它传递给jQuery构造函数,这意味着它什么都不做,因为它从未实际调用过。
总是, 始终 只要出现问题,请查看输出JavaScript。您甚至可以使用coffeescript.org处的交互式编译器来构建函数,同时密切关注输出。