簡體   English   中英

jQuery on()代理上下文意外

[英]jquery on() Proxy context unexpected

基本上,這是我的代碼,當單擊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) )
        );

問題是,因為您使用了$ .proxy() ,所以處理程序中的this引用未引用clicked元素,因此您可以使用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));

演示: 小提琴

如果要獲取父ID,只需使用parent()函數, 這是我的小提琴示例

$(document).ready(function()
   {
       $("a.tags_delete").on("click",function(){         
           alert($(this).parent().attr('id'));
        });
 });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM