开关盒断开就像被遗漏了

时间:2018-09-21 10:22:14

标签: javascript jquery switch-statement

运行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 个答案:

答案 0 :(得分:0)

每次运行代码时,您都会添加越来越多的点击处理程序,而不会关闭旧的点击处理程序。

在添加新的点击处理程序之前,您可以使用.off关闭上一个点击处理程序

$("#erg").off("click");

更新的代码:

function setInfo(hotspot) {

  $("#erg").off("click");

  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;
  }