【问题标题】:JS hide function errorJS隐藏函数错误
【发布时间】:2014-10-05 10:56:30
【问题描述】:

我有 7 个不同的 DIV 块。 第一个 DIV 块应该出现在开头,隐藏另一个。 为此,我在其他六个定义的地方给了display: none 块。 所以应该出现另一个块,我有一个从网上复制的JS代码。

 function showonlyone(thechosenone) {
     $('.newboxes').each(function (index) {
         if ($(this).attr("id") == thechosenone) {
             $(this).show();
         }
         else {
             $(this).hide();
         }
     }); 
}

问题是,我变成了 Firebug 的错误:

ReferenceError: showonlyone 未定义

我希望,我已经宣布你没事了。

【问题讨论】:

  • 请只学习 Javascript,而不是在 SO 上发布关于您在从互联网上复制/粘贴的代码中不理解的错误的问题。
  • 也发布您的标记或制作小提琴。

标签: javascript jquery html css


【解决方案1】:

确保在dom的开头加载js,否则函数不会被声明。

function showonlyone(thechosenone) { 
   $('.newboxes').each(function () { 
      if ($(this).attr("id") == thechosenone) { 
         $(this).show(); 
      } else { 
         $(this).hide(); 
      }
   }); 
}

您还可以将整个功能增强到此:

function showonlyone(thechosenone) { 
   $('.newboxes:not([data-id='+thechosenone+'])').hide();
  $('.newboxes[data-id='+thechosenone+']').show();
}

【讨论】:

    【解决方案2】:

    您拥有的代码可能有点复杂。像这样的:

    function showonlyone(thechosenone) {
        $(".newboxes").hide();
        $("#"+thechosenone).show();
    }
    

    会简单得多。

    对于未定义的函数,请确保该函数定义在调用它的事物可以到达的范围内!

    【讨论】:

      猜你喜欢
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      • 2021-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-08
      相关资源
      最近更新 更多