gpt4 book ai didi

jquery - 在 jQuery 中委托(delegate)一个就绪事件

转载 作者:行者123 更新时间:2023-12-04 05:28:19 26 4
gpt4 key购买 nike

我正在尝试实现 combobox在有他的 select 的表格上ajax 中加载的字段。

我想打电话:

$('.combobox').combobox();

当一个新的组合框准备好时。

目前,我把它放在我的 ajax 响应中:
<script type="text/javascript">
$(document).ready(function() {
$('.combobox').combobox();
});
</script>

这可行,但在资源方面看起来很糟糕。所以我一直在寻找更好的方法来处理 ready事件。

我试过 :
 $('.combobox').live('ready', function() {
$(this).combobox();
});

但稍后阅读 live()不支持 ready事件。

然后,我尝试了:
    $('body').delegate('.combobox', 'ready', function() {
$(this).combobox();
});

但它也不起作用。

所以这里有一个问题:在 jquery 的选择器上处理当前和 future 就绪事件的最佳方法是什么?

最佳答案

没有理由将就绪事件绑定(bind)到文档以外的任何内容。

事实上,jQuery 采用您放在 .ready 之前的任何其他选择器。并忽略它。
.ready 有一个内置的 promise 对象您可以与 .done() 一起使用作为备选。

$.ready.promise().done(function(){
$('.combobox').combobox();
});

或者你可以简单地使用
$(function(){
$('.combobox').combobox();
});

或者
$(document).ready(function(){
$('.combobox').combobox();
});

Promise 版本的好处是你可以像这样使用它:
$.when( $.ready, $.post("foobar.php") ).done(function() {
$(".combobox").combobox();
})

关于jquery - 在 jQuery 中委托(delegate)一个就绪事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12936437/

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