JS隐藏功能错误

时间:2014-08-12 11:31:50

标签: javascript jquery html css

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

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

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

RefernceError:未定义showonlyone

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

2 个答案:

答案 0 :(得分:0)

确保在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();
}

答案 1 :(得分:-2)

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

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

会更简单。

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