[英]Works with vanilla javascript but not jquery
我試圖將VKI(請參閱http://www.greywyvern.com/code/javascript/keyboard )附加到通過Javascript動態添加到DOM的元素上。
本質上,它是一個表,只有一行開始,並且有“添加行”和“刪除行”。 之所以變得棘手,是因為每一行都有一個需要VKI附加的輸入。
以下只是我的其他較大代碼的一小段,用於處理添加和刪除行。
$('#add-passenger-row').click(function(){
get_lastID();
$('#passenger-information tbody').append(newRow);
// this doesn't work --- throws "Uncaught TypeError: undefined is not a function"
var myInput = $(newRow).find('#myInput');
VKI_attach(myInput);
// this works
var myInput = document.getElementById('myInput');
VKI_attach(myInput);
});
我的問題是...我該如何進行這項工作? 即,將VKI附加到用戶單擊“添加行”時動態添加的行中的每個輸入上
如果問題不清楚,我可以創建JSBin。
嘗試:
var myInput = $(newRow).find('#myInput').get(0);
VKI_attach(myInput);
.get()
從jQuery對象檢索DOM元素。 VKI
不是jQuery小部件,因此它不適用於jQuery對象,它需要原始DOM元素。
我認為d-bro82和ZiNNED都正確,但請嘗試var myInput = $('#myInput')[0]; 由於VNK_attach僅接受dom元素,因此[0]應該刪除jQuery包裝器
嘗試
var myInput = $('#myInput');
祝好運
jQuery變體不起作用的原因是因為$(newRow).find('#myInput')
與document.getElementById('myInput')
。 看到這個問題 。 顯然,VKI_attach僅接受DOM元素,而不接受jQuery包裝器元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.