在动态添加元素时,如下所示:
row = """
<div class="ipad-row">
<h3>Sample Row</h3>
<div id="wrapper-placeholder">
<div class="scrollView" style="">
<a class="btn btn-primary add-row-item">Add an item</a>
</div>
</div>
</div>
"""
$(".add-row").live "click", ->
$(".ipad .body").append row
false
为什么当我尝试从该行元素中的链接获取此内容时,我得到窗口:
$(".add-row-item").live "click", =>
f = $ this
console.log f // this logs window object, not the link element?
f.parent().append row_item
有人可以解释一下这种行为以及如何使用$(this)就像你在装载dom时元素确实存在一样吗?
由于
答案 0 :(得分:5)
=>
将this
更改为父上下文中的this
:
$(".add-row-item").live "click", =>
f = $(this)
编译到
var _this = this;
$(".add-row-item").live("click", function() {
var f = $(_this);
改为使用->
,不会修改this
。