gpt4 book ai didi

javascript - Select2 - 打开下拉列表后形成下拉列表时需要一个事件

转载 作者:行者123 更新时间:2023-11-28 05:43:22 26 4
gpt4 key购买 nike

我正在使用select2 jquery插件

我正在使用open事件

var select2 = $('select').select2();
select2.on("select2:open", () => {
// I want to do some code here with $('.select2-results__option')
//$('.select2-results__option').size() is not equal to actual elements
});

当我们单击下拉菜单时会触发此事件。但我在这个事件中没有得到下拉元素。

我有 2000 个下拉元素。但在公开事件中我没有得到这一点。是否有任何事件来检测下拉列表是否已填充。

最佳答案

当我尝试在打开后删除项目时,遇到了类似的问题。

您可以使用异步函数来检查列表是否完整:

select2.on("open", function (e) {
asyncCheck();
});

async asyncCheck() {
// Waiting for 0 milliseconds was enough for me, maybe you need to increase the value
await new Promise(resolve => window.setTimeout(resolve, 0));

// Here comes your check, if list is completly populated ...
}

但请注意,此不适用于 IE 11,因为 IE 11 不支持异步和 Promise(请参阅Can I Use Promises 和 async function嗯>

我的 IE 11 解决方法如下所示:

$(document).ready(checkContinuously());

function checkContinuously() {
// Do your check here
setTimeout(checkContinuouslyForNullOption, 100);
}

但是它有一个明显的缺点,即总是执行检查,并且理论上可能会导致堆栈溢出,因为它使用递归。

关于javascript - Select2 - 打开下拉列表后形成下拉列表时需要一个事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38740492/

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