我在下面有这个jQuery代码:
$("#options").popup(null, Settings.DialogOptions)
.on("onOk", function(){
Settings.SaveSettings( );
Settings.CloseSettings( );
switch(Settings.GetSetting("displayId")){
case "true":
$("#nextId").show();
$("label[for=nextId]").show();
break;
case "false":
$("#nextId").hide();
$("label[for=nextId]").hide();
break;
}
});
我必须要测试我的代码:
displayId = false
:代码正常运行,它隐藏了我的两个元素displayId = true
:代码不起作用,我的元素不会显示回来。我在控制台中没有收到任何错误,但我不知道如何使我的代码工作。谁能帮帮我?
答案 0 :(得分:1)
如果你真的在处理字符串,那可能是空格或大写的问题:
// ----v -----v
switch($.trim(Settings.GetSetting("displayId")).toLowerCase() === "true"){
case true: // <== No quotes
$("#nextId").show();
$("label[for=nextId]").show();
break;
case false: // <== No quotes
$("#nextId").hide();
$("label[for=nextId]").hide();
break;
}
当然,如果您处理的是真或假,if/else
是标准结构:
if ($.trim(Settings.GetSetting("displayId")).toLowerCase() === "true"){
$("#nextId").show();
$("label[for=nextId]").show();
}
else {
$("#nextId").hide();
$("label[for=nextId]").hide();
}
或者你只是根据旗帜显示/隐藏:
$("#nextId").add("label[for=nextId]").toggle($.trim(Settings.GetSetting("displayId")).toLowerCase() === "true");