[英]Selecting the clicked element and not its parents
我有一堆嵌套列表:
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3
<ul>
<li>child-1</li>
<li>child-2
<ul>
<li>grand-child 1</li>
</ul>
</li>
</ul>
</li>
</ul>
對於jQuery,單擊或懸停時,我要使用項目(li)。 但這給了我它的父母。 如下所示:如果單擊(或懸停)孫子1,則$(this)返回ITEM-3(父母的父母)
我的jQuery代碼:
$('ul li').live('click', function(e) {
someVar = $(this).data("dataname"); // (can be .attr(""), etc.);
});
單擊任何一個Li時,如何使用特定的Li,而不是嵌套的父?
這會有所幫助嗎? 如果看到console.log,則僅返回當前單擊的項目。 在此處閱讀有關stopPropagation的文檔。
“文檔指出stopPropagation阻止事件使DOM樹冒泡,從而阻止任何父處理程序收到該事件的通知。”
我還更新了live,因為live從1.7開始不推薦使用
$('ul li').on('click', function(e) {
e.stopPropagation();
console.log($(this));
});
我認為以下是您要尋找的東西,
$('ul li').live('click', function(e) {
e.stopPropagation();
someVar = $(this).data("dataname");
});
e.stopPropagation();
停止傳播到其他匹配ul li
任何事件
注意:如果不贊成使用.live
請使用.on
如果您使用的是jQuery v1.7
.on
。
$(document).on('click', 'ul li', function(e) {
e.stopPropagation();
alert($(this).text()); // (can be .attr(""), etc.);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.