gpt4 book ai didi

Javascript 循环无法正确创建 jquery 控件

转载 作者:行者123 更新时间:2023-12-02 16:33:24 25 4
gpt4 key购买 nike

我想更换:

    var linuxControls = ["CreateLinuxUser", "EditLinuxUser", "DeleteLinuxUser", "Export"];
$("#dlgCreateLinuxUser").dialog({autoOpen: false});
$("#btnCreateLinuxUser").click(function () {
$("#dlgCreateLinuxUser").dialog("open");
});
$("#dlgEditLinuxUser").dialog({
autoOpen: false
});
$("#btnEditLinuxUser").click(function () {
$("#dlgEditLinuxUser").dialog("open");
});
$("#dlgDeleteLinuxUser").dialog({autoOpen: false});
$("#btnDeleteLinuxUser").click(function () {
$("#dlgDeleteLinuxUser").dialog("open");
});
$("#dlgExport").dialog({autoOpen: false});
$("#btnExport").click(function () {
$("#dlgExport").dialog("open");
});

与:

    for (i = 0; i < linuxControls.length; i++) {
var strDlg = "#dlg" + linuxControls[i];
var strBtn = "#btn" + linuxControls[i];
$(strDlg).dialog({autoOpen: false});
$(strBtn).click(function () {
$(strDlg).dialog("open");
});
}

但是,它仅创建最后一个控件“导出”。随着循环构造和字符串构建的进行,一切看起来都很好。 jquery 有什么奇怪的东西阻止了这种情况吗?

最佳答案

使用闭包循环,以便 i 不会在运行时更改,可以使用 jQuery each 来做到这一点。

$.each(linuxControls, function(i) {
var strDlg = "#dlg" + linuxControls[i];
var strBtn = "#btn" + linuxControls[i];
$(strDlg).dialog({autoOpen: false});
$(strBtn).click(function () {
$(strDlg).dialog("open");
});
});

关于Javascript 循环无法正确创建 jquery 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28119963/

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