擁有訪問權限的$(this)
綁定所有的人,使用.each()
,像這樣:
$('textarea[name*=quote]').each(function() {
$(this).limit('10',$(this).closest('form').find('span[name*=qc]'));
});
如果您需要.live()
類似功能的第二部分,您需要使用.livequery()
,如下所示:
$('textarea[name*=quote]').livequery(function() {
$(this).limit('10',$(this).closest('form').find('span[name*=qc]'));
});
或者,可以像第一個示例那樣綁定它們,並且在加載新元素時也會綁定,例如,如果你使用$.ajax()
,它應該是這樣的:在這裏
$.ajax({
url: blah.html
success: function(data) {
//do something with data
$('textarea[name*=quote]', data).each(function() {
$(this).limit('10',$(this).closest('form').find('span[name*=qc]'));
});
}
});
的關鍵是, data
,it provides a context to search in,所以這只是在傳回的數據中發現的元素執行。您也可以在功能包裝是爲了防止重複的代碼,像這樣:
function bindStuff(context) {
$('textarea[name*=quote]', context || document).each(function() {
$(this).limit('10',$(this).closest('form').find('span[name*=qc]'));
});
}
在document.ready
,叫bindStuff(document)
,在$.ajax
,你會打電話bindStuff(data)
。
您不應該有重複的ID;改用類名。 – SLaks 2010-05-16 02:22:12
這是什麼?我的意思是,你在jQuery.each中嗎?提供更多的代碼,沒有辦法知道該範圍內的「this」是什麼。 – BrunoLM 2010-05-16 02:34:20