我無法將.live功能應用於具有唯一ID的特定輸入標籤。我做錯了嗎?有什麼建議麼?jquery實時功能不適用於特定選擇器
$('input.newQty').live('change', function(){
}); //works
$('input.newQty[id="'+naam+'"]').live('change', function(){
}); //does not work
我無法將.live功能應用於具有唯一ID的特定輸入標籤。我做錯了嗎?有什麼建議麼?jquery實時功能不適用於特定選擇器
$('input.newQty').live('change', function(){
}); //works
$('input.newQty[id="'+naam+'"]').live('change', function(){
}); //does not work
更新:如果你必須使用現場活動這種情況下,我會派出的事件處理函數,而不是作爲一個匿名函數。這可能是我會做的。
function myChangeHandler(e){
if($(this).attr("id")==naam))
{
//found the right input, hook this event handler to the input directly and unbind it from all others
$("input.newQty").die("change",myChangeHandler);
$(this).bind("change",myChangeHandler);
}
//rest of the code goes here
}
$("input.newQty").live("change",myChangeHandler);
據我所知,實時選擇器不能動態。正如你不能通過在運行時加入變量來構建實時事件的選擇器一樣。他們需要整體評估才能工作。
因此,你不能有一個活表達
$('input.newQty[id="'+naam+'"]').live('change', function(){
});
你最好的辦法將是使用它的類選擇,你已經正確。
如何:
$('#'+ naam).live('change', function() {
// ...
});
或者,如果你想使用name
屬性,而不是id
必須是唯一的:
$('input.newQty[name="' + naam + '"]').live('change', function() {
// ...
});
@Darin no..doesnt work – 2011-05-27 11:20:04
@Darin它是如何改變什麼的?這是所有關於選擇'名稱'attr然後 – 2011-05-27 11:22:03
@Aakash Goel,你想通過'id'或'name'來選擇嗎? – 2011-05-27 11:22:34
這聽起來合乎邏輯enuf ..你對我遇到的問題有何建議? – 2011-05-27 11:25:14
我在編輯我的答案給你一個替代方案。 – Nikhil 2011-05-27 11:27:49
我已經給出了更新的代碼。雖然它可以進一步調整,因爲它會繼續使用唯一ID在輸入上調用die()和bind()。你可能想要存儲一個標誌來說例程已經通過綁定連接,而不是再次調用bind() – Nikhil 2011-05-27 11:37:00