define(function (require, exports, module) { var sessMgr = require("../account/sessionMgr.js"); var resetInterfaceByUser = function () { var user = sessMgr.current; if (!user) { return; } var p = user.options || {}; $("input[data-option-key],select[data-option-key]").each(function () { var type = this.type; var value = this.value; var svalue = p[this.dataset.optionKey]; if (typeof (svalue) === "undefined") { return; } if (type === "checkbox") this.checked = svalue; else if (type === "radio") { this.checked = svalue == value; } else { $(this).val(svalue); } }); }; sessMgr.on("sessionChanged", resetInterfaceByUser); //初始化状态 resetInterfaceByUser(); $(document).on("change", "input[data-option-key],select[data-option-key]", function () { var u = sessMgr.current; var p = u.options || (u.options = {}); var type = this.type; var key = this.dataset.optionKey; if (type === "radio") { var checked = $("input:radio[name=" + this.getAttribute("name") + "]:checked").val(); switch (typeof (p[key])) { case "number": p[key] = parseInt(checked); break; case "boolean": p[key] = checked == 1; break; default: p[key] = checked; } } else if (type === "checkbox") { p[key] = this.checked ^ this.value == "0"; } else if (type === "number") { p[key] = this.valueAsNumber; } else { p[key] = $(this).val(); } sessMgr.save(); }); });