[英]Add jQuery to dynamic JS-DOM objects
我正在使用純 JavaScript 創建幾個 DOM 對象,這些對象在一切完成后都被放入頁面中。
現在我想通過使用 jQuery 添加一些不同的功能。 並在創建過程中添加。
現在看起來(很舊,沒有任何 jQuery):
var mainput = document.createElement("textarea");
mainput.setAttribute("ID", "masseinfo_" + dsatz.ID);
mainput.setAttribute("onkeyup", "checkAndSendMaAjax(" + dsatz.ID + ", '" + masseinfoup + "', '" + dsatz.Typ + "', this.value)");
使用帶有 keyup 的 jQuery 似乎失敗,因為該對象尚未出現在頁面上。
mainput.keyup(debounce(250, function (e) {
console.log('It works!');
checkAndSendMaAjax(" + dsatz.ID + ", '" + masseinfoup + "', '" + dsatz.Typ + "', this.value);
}));
錯誤: keyup is not a function
使用on
沒有太大區別。
mainput.on('keyup',null,(debounce(250, function (e) {
console.log('It works!');
checkAndSendMaAjax(" + dsatz.ID + ", '" + masseinfoup + "', '" + dsatz.Typ + "', this.value);
})));
錯誤: on is not a function
搜索了一下,我進入了那個頁面, 該頁面寫了一些關於 on 而不是 live 的用法:
$(".postitem").live("click", function() {...});
……現在是……
$(document).on("click", ".postitem", function() {...});
所以我試過:
$(document).on('keyup',mainput,(debounce(250, function (e) {
console.log('It works!');
checkAndSendMaAjax(" + dsatz.ID + ", '" + masseinfoup + "', '" + dsatz.Typ + "', this.value);
})));
這不會產生錯誤,但根本不做任何事情。 我究竟做錯了什么?
$.on() 函數的第二個參數是一個字符串(選擇器)而不是一個 DOM 元素。 更改代碼以使用選擇器"#masseinfo_" + dsatz.ID
或mainput.getAttribute("id")
$(document).on('keyup', mainput.getAttribute("id"),(debounce(250, function (e) {
console.log('It works!');
checkAndSendMaAjax(" + dsatz.ID + ", '" + masseinfoup + "', '" + dsatz.Typ + "', this.value);
})));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.