【发布时间】:2019-02-25 17:43:08
【问题描述】:
运行 switch 语句时出现问题。如你所见each spot is a different case in a switch statement.
单击菜单按钮以获取有关第一个位置(案例 1)a modal/popup window is displayed 的一些信息时,应该是这样。但是对于案例 2,会显示两个模态,it 's like it also triggers case 1。
这是一段代码:
function setInfo(hotspot){
switch (hotspot){
case 1:
$("#erg").click(function() {
$.dialog({
title: 'Info',
content: 'Εικονοστάσι στη βάση του βράχου.',
theme: 'dark',
offsetTop:'1000',
boxWidth:'20%',
useBootstrap: false,
});
})
break;
case 2:
$("#erg").click(function() {
$.dialog({
title: 'General Info',
content: 'Content',
columnClass: 'medium',
type:'blue',
useBootstrap: false,
});
})
break;
case 3:
$("#erg").click(function() {
$.dialog({
title: 'Info',
content: 'Σπηλαιώδες ασκητήριο του Αγίου Γρηγορίου.',
theme: 'dark',
offsetTop:'1000',
boxWidth:'20%',
useBootstrap: false,
});
})
break;
default:
$('#screenshot0').css("display", "inline");
break;
}
我正在为对话框模式使用 jQuery 插件。很抱歉其内容的希腊字符,非常感谢。
【问题讨论】:
-
你确定“热点”是一个数字,它是否在控制台上显示任何错误?
-
您是否使用
1调用,看到1 个对话框然后立即使用2调用,然后单击显示两个对话框? 每次运行代码时都会添加越来越多的点击处理程序,而无需关闭旧的点击处理程序。先用2运行,你会没事的。使用1运行两次,您将在 1 上获得 2 个对话框。 -
请注意,如果您多次调用
setInfo,则会将多个侦听器添加到相关元素中。否则,我想我会在case #s 之后从console.logging 开始,看看哪些行正在运行。
标签: javascript jquery switch-statement