我使用普通JavaScript創建了幾個DOM對象,並在完成所有事情後放入頁面。將jQuery添加到動態JS-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)");
使用jQuery與KEYUP似乎失敗,因爲對象是不是在頁面上呢。
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
搜索了一下把我帶到that page其中寫了一些關於對使用,而不是活:
$(".postitem").live("click", function() {...});
... would now be...
$(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);
})));
這是不是不會產生錯誤,但根本不會做任何事情。 我在做什麼錯?
我得到的是'類型錯誤:不能分配到(新的String(「masseinfo_106」))的性質:不是object' – Qohelet
你能爲你的問題創建一個功能性的例子嗎?你可以使用https://jsfiddle.net/那 – pedrofsantos
那麼問題就解決了。不過很好: 'dsatzjqcode.push(「$(document).on('keyup','#masseinfo_」+ dsatz.ID +「',function(){debounce(checkAndSendMaAjax(」+ dsatz.ID +「, '「+ masseinfoup +」','「+ dsatz.Typ +」',this.value),「+ debouncetime +」);});「); ' 我把所有東西都放在一個數組中,並在頁面加載後使用'eval' – Qohelet