[英]jQuery closest() remove() on <a> doesn't work?
請查看包含以下代碼的頁面 :
<div class="pure-control-group query-brand-by-column">
<!-- somethings else -->
<div class="pure-u-1 pure-u-sm-1-24 control-group-sub">
<a href="javascript:$(this).closest('.query-brand-by-column').remove();" class="pure-button danger">X</a>
</div>
</div>
單擊X鏈接應將其祖先div.query-brand-by-column
整體刪除,但是不起作用。 我已經檢查了jQuery文檔和此答案 ,並且代碼對我來說似乎絕對正確,但是根本行不通。 任何想法?
href
中的this
並不指向錨元素,因此不起作用。 它是指window
。
您應該使用jQuery綁定元素事件處理程序。
腳本
$(document).on('click', '.pure-button danger' function(e) {
e.preventDefault();
$(this).closest('.query-brand-by-column').remove();
});
的HTML
<div class="pure-control-group query-brand-by-column">
<!-- somethings else -->
<div class="pure-u-1 pure-u-sm-1-24 control-group-sub">
<a href="#" class="pure-button danger">X</a>
</div>
</div>
我不會推薦,但是您可以使用內聯onclick
處理程序。
<a onclick="$(this).closest('.query-brand-by-column').remove();" href='#' class="pure-button danger">X</a>
從html分離您的javascript並使用click事件刪除您的項目,現在您不會觸發任何click事件:
<script>
$(function(){
$('.pure-form').on('click','.query-brand-by-column a',function(){//this will create and delegate your click event to work on dynamically created items
$(this).closest('.query-brand-by-column').remove();
});
});
</script>
這是你的答案,享受
<a href="javascript:void(0);" onclick="return $(this).closest('.query-brand-by-column').remove();" class="pure-button danger">X</a>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.