这是我的代码,基本上,当点击tags_delete时,我想访问父div的id。不知何故,上下文没有被提起。我已经阅读了$ .proxy的例子,但无法让它工作。
<div class="text">
<div id="894" class="tags">
<img height="24" src="image">
<a class="tags_delete"></a>
</div>
<input id="tag_list" type="text">
</div>
$("div.text").on("click", "a.tags_delete",
$.proxy(function(that){
var imageId = that.parent("div").prop("id");
console.log(that);
console.log( imageId );
this.deleteTag(imageId);
}, this, $(this) )
);
答案 0 :(得分:1)
问题是因为你使用了$.proxy(),处理程序内的this
没有引用被点击的元素,所以你可以使用event.currentTarget属性来引用当前的目标元素并使用parent()访问其ID
$("div.text").on("click", "a.tags_delete", $.proxy(function (e) {
var imageId = $(e.currentTarget).parent().attr('id');
console.log(that);
console.log(imageId);
this.deleteTag(imageId);
}, this));
演示:Fiddle
答案 1 :(得分:0)
如果您想获取父ID,请使用parent()
功能
Here my fiddle example
$(document).ready(function()
{
$("a.tags_delete").on("click",function(){
alert($(this).parent().attr('id'));
});
});