2014-05-30 121 views
0

jQuery是否有捕獲創建動態創建的DOM內容的事件?或者有沒有在jQuery中做這件事的方法?jQuery - 捕獲創建動態創建的文本框的事件

我注入jQuery的網頁動態地創建文本框。我無法控制這一點。然而,我想每3秒檢查一次是否創建了一個新的文本框,然後用一個值填充它。

的文本框如下所示:

<input id="AplEducationTbl:EstName:0" type="text" onchange="return false"> 
<input id="AplEducationTbl:EstName:1" type="text" onchange="return false"> 

所以有幾個問題。該id使用冒號,我不知道如何在jQuery中轉義。 onchange返回false,這會阻止我掛鉤我的事件。

使用:

setTimeout(function(){ 
     /* What do I put here? */ 
    }, 3000); 
+0

您是否嘗試過與選擇「輸入[tpye ='文字']「? – keypaul

回答

0

不過,我想檢查每3秒一個新的文本框是否已創建

爲了這一點,你必須使用setInterval()方法代替:

var len = $('input[id^="AplEducationTbl:EstName"]').length; 
setInterval(function() { 
    if ($('input[id^="AplEducationTbl:EstName"]').length > len) { 
     console.log('changed.'); 
     len = $('input[id^="AplEducationTbl:EstName"]').length; 
    } //^^^^----------------------------------------update the value of len 
}, 3000); 

該id使用冒號,我不知道如何在jQuery中轉義。

對於這個要麼你可以使用兩個斜線\\其他答案,並用字符串表示其他方式的建議把值引號該ID是這樣的:

$('input[id^="AplEducationTbl:EstName"]') 
//-----------^-----------------------^------put the value in quotes like this 
//------------------------------------------and you are good to go. 
1

您可以使用事件代表團和搜索開始AplEducationTbl:EstName的ID?

$(document).on("change", "input[id^=AplEducationTbl\\:EstName]", function() { 
    console.log("Change"); 
}); 

jsFiddle