gpt4 book ai didi

javascript - 如何防止 dojo Select 上的 OnChange 事件

转载 作者:行者123 更新时间:2023-11-28 11:37:45 30 4
gpt4 key购买 nike

我正在从事本地化工作,并使用 cookie 来存储语言。我有一个选择:

var select = new dijit.form.Select({
name: "languageSelect",
onChange: function (value) {
changeLanguage(value);
}
}, "languageSelect");

onChange事件中,将调用方法changeLanguage:

 var changeLanguage = function (language) {
$.ajax({
type: "PUT",
url: "/api/accounts/changelanguage?language=" + language,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
window.location.reload(false);
}
});
};

此方法使用 ajax 调用服务器,然后重新加载页面。

问题是:在页面加载时,我需要读取用户之前选择的cookielanguage并将其设置为Select:

select.set("value", readCookie("language"));

但是,这个set会导致事件OnChange触发,然后使页面重新加载,这是我一开始不想要的。我尝试使用如下所示的一个标志,但它不起作用:

var select = new dijit.form.Select({
name: "languageSelect",
style: { width: '200px' },
onChange: function (value) {
if (isLoading == false)
changeLanguage(value);
}
}, "languageSelect");

var isLoading = true;
select.set("value", readCookie("language"));
isLoading = false;

有没有办法解决这个问题,我想防止事件 OnChangeset 方法上触发,但还没有找到如何做到这一点。

最佳答案

尝试添加false ,例如:

select.set("value", readCookie("language"));

select.set("value", readCookie("language"), false);

false set() 末尾的标志防止 onChange 的方法事件。

关于javascript - 如何防止 dojo Select 上的 OnChange 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15127575/

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