2017-05-19 65 views
0

我有這樣的功能:.find()從它使用的元素開始還是從文檔開始?

$.fn.search = function() 
{ 
    $(document).on('change', 'input, select', function() { 
     $(this).find('.step').data('changed', 1); 
    }); 
}; 

$.fn.search(); 

,你可以它所做的就是,偵聽輸入和選擇的變化(動態創建的 - 因此$(document)和更改時發現數據標記添加到最近的DIV 。

但是它沒有分配數據標籤。

這意味着,我認爲從元件減少,而不是文件開始.find()搜索。是這種情況,或只是我的代碼是錯誤的?

謝謝

回答

2

find()方法搜索的後代元素,而不是使用closest()方法來獲得最接近的祖先。

$(document).on('change', 'input, select', function() { 
    $(this).closest('.step').data('changed', 1); 
}); 
+1

啊我看到了,所以找到下降?有道理:)將標記爲您接受的答案當我可以 – ThisGuyHasTwoThumbs

+0

這裏的重要一點是代表綁定內的'this'是事件源自的元素,而不是委託綁定綁定到的父元素。 – Taplar