TABS.cutoffs = {};
TABS.cutoffs.initialize = function(callback) {
var self = this;
$("select[name=selectlanguage]").on("change", function() {
localStorage.setItem("languageValue", $(this).val());
console.log(localStorage.getItem('languageValue'), "inside$JqueryFunction");
});
console.log(localStorage.getItem('languageValue'), "outsidetheFunction");
if (callback) callback();
};
在HTML中:
<td>
<select class="dropdown" id="selectlanguage" name="selectlanguage">
<option id="enBtn" value="en">English</option>
<option id="zhBtn" value="zh">简体中文</option>
</select>
</td>
在控制台中它说:
en outsidetheFunction
zh inside$JqueryFunction
看到了吗?它应该相同,例如:
en outsidetheFunction
en inside$JqueryFunction
或
zh outsidetheFunction
zh inside$JqueryFunction
为什么localStorage.getItem('languageValue')
在函数$("select[name=selectlanguage]").on("change", function()
的内部和外部变得不同?
答案 0 :(得分:0)
这里没有回调地狱。
调用initialize
函数时,会发生以下情况:
另一些时间-我想以后-如果您更改选择中的所选选项,则新选择的值将被写入本地存储中。
因此,您遇到的情况非常正常:
首先,在控制台中打印"en outsidetheFunction"
。最有可能是因为“ en”是用localStorage编写的。我想从以前的处决。
然后,"zh inside$JqueryFunction"
将打印在控制台中。
很有可能是因为您在选择中选择了“ zh”并触发了change事件,该事件写入localStorage并打印新值。