gpt4 book ai didi

javascript - 动态创建元素的 jQuery "on create"事件

转载 作者:IT王子 更新时间:2023-10-29 02:51:16 25 4
gpt4 key购买 nike

我需要能够动态创建 <select>元素并将其转换为 jQuery .combobox() .这应该是元素创建事件,而不是某些“单击”事件,在这种情况下我可以只使用 jQuery .on() .

那么这样的东西存在吗?

$(document).on("create", "select", function() {
$(this).combobox();
}

我不太愿意使用 livequery,因为它太过时了。

更新 提到的选择/组合框通过 ajax 加载到 jQuery 颜色框(模态窗口)中,因此问题 - 我只能使用颜色框启动组合框 onComplete ,但是在更改一个组合框时,必须动态创建另一个选择/组合框,因此我需要一种更通用的方法来检测元素的创建(在本例中为 select)。

UPDATE2 尝试进一步解释问题 - 我有 select/combobox .combobox() 递归创建的元素,里面也有很多启动代码,因此如果我使用经典方法,如 @bipen's answer ,我的代码会膨胀到疯狂的水平。希望这能更好地解释问题。

UPDATE3 谢谢大家,我现在明白自从弃用了DOMNodeInserted DOM 变异中留下了一个空白,并且没有解决这个问题的方法。我只需要重新考虑我的申请。

最佳答案

您可以 on DOMNodeInserted 事件以获取有关何时通过您的代码将其添加到文档的事件。

$('body').on('DOMNodeInserted', 'select', function () {
//$(this).combobox();
});

$('<select>').appendTo('body');
$('<select>').appendTo('body');

在这里摆弄:http://jsfiddle.net/Codesleuth/qLAB2/3/

编辑:阅读之后我只需要仔细检查 DOMNodeInserted 不会在浏览器中引起问题。 This question从 2010 开始表明 IE 不支持该事件,所以如果可以的话,请测试它。

参见此处:[link] 警告! DOMNodeInserted 事件类型在本规范中定义是为了引用和完整性,但本规范 deprecates使用此事件类型。

关于javascript - 动态创建元素的 jQuery "on create"事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15268661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com