簡體   English   中英

適用於香草javascript,但不適用於jquery

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM