簡體   English   中英

jquery .not()不能使用live()

[英]jquery .not() is not working with live()

我在一個頁面中添加了一些帶有ajax的dom,我試圖通過.not()排除選擇的結果,但它不適用於我。

這是一個簡單的例子:

HTML:

<div class="list-item">
        <span class="item-title">Some title</span>
        <span class="edit fr"><a href="Edit link">Edit</a></span>
        <span class="trash fr"><a href="#trashit" rel="trash">Trash</a></span>
        <span class="live fr active"><a href="#liveit" rel="publish">Live</a></span>
        <span class="draft fr"><a href="#draftit" rel="draft">Draft</a></span>

 </div>

jQuery的:

jQuery('.list-item span a').not('.list-item span.edit a').live('click', function(){

       //do stuff
});

觀察:

  1. 如果我刪除代碼的.not()部分,選擇適用於live()
  2. 如果我使用.not()但用click()替換live()代碼可以工作。

但我需要使用live();運行.edit .not() (不包括.editlive(); (包括帶有ajax的dom)

提前致謝!

根據.live()文檔

查找要發送到.live()元素不支持DOM遍歷方法。 相反,應始終在選擇器之后直接調用.live()方法,如上例所示。


因此,將類排除添加到選擇器:

jQuery('.list-item span:not(.edit) a').live('click', function(){
    //do stuff
});

嘗試

$('.list-item span:not(.edit) a').live(...);

正如其他人所指出的那樣,實時不支持DOM遍歷。 live也有其他一些限制,請查看doc。

jQuery('.list-item').filter(function(){

return $(this).not("span.edit a")
})
.live('click', function(){

       //do stuff
});

暫無
暫無

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

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