javascript - 将 jQuery 添加到动态 JS-DOM 对象

标签 javascript jquery dom dom-events debouncing

我正在使用纯 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)");

将 jQuery 与 keyup 结合使用似乎失败,因为该对象尚未出现在页面上。

mainput.keyup(debounce(250, function (e) {
    console.log('It works!');
    checkAndSendMaAjax(" + dsatz.ID + ", '" + masseinfoup + "', '" + dsatz.Typ + "', this.value);
}));

错误:keyup不是函数 使用 on 没有太大不同。

mainput.on('keyup',null,(debounce(250, function (e) {
    console.log('It works!');
    checkAndSendMaAjax(" + dsatz.ID + ", '" + masseinfoup + "', '" + dsatz.Typ + "', this.value);
})));

错误:on 不是函数

搜索了一下,我找到了 that page其中写了一些关于 on 而不是 live 的用法:

$(".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);
    })));

这不会产生错误,但根本不执行任何操作。 我做错了什么?

最佳答案

$.on() 函数的第二个参数是字符串(选择器)而不是 DOM 元素。 更改代码以使用选择器 "#masseinfo_"+ dsatz.IDmainput.getAttribute("id")

$(document).on('keyup', mainput.getAttribute("id"),(debounce(250, function (e) {
    console.log('It works!');
    checkAndSendMaAjax(" + dsatz.ID + ", '" + masseinfoup + "', '" + dsatz.Typ + "', this.value);
})));

jQuery on function

关于javascript - 将 jQuery 添加到动态 JS-DOM 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41127078/

相关文章:

javascript - jQuery:使字符串中的字母闪烁

php - 如何获取相同的firebug "network"部分信息?

javascript - 在 MVC 中移动 javascript 后,ActiveX 中的访问被拒绝

javascript - 在 dayclick 回调中访问 fullCalendar JSON customData

javascript - className 属性可以以正式形式动态化吗

jquery - Twitter Bootstrap v2.3.2 响应式菜单在 IE 或 Safari 或移动设备中不起作用

javascript - getElementsByClassName() 有两个类

javascript - 如何在 JavaScript 中添加/删除类?

javascript - 如何获取部分html标记作为变量

javascript - 为深层嵌套值 react setState