使用javascript面向对象取消隐藏div

时间:2014-04-25 14:21:49

标签: javascript jquery html

一旦隐藏了div,我就无法取消隐藏div。

代码:

第一个对象

$('#filter_region').on('change', function(e) {

      var temp_region_id = $('#filter_region').val();

      filterRegionId($temp_region_id);

   });

Seconds对象:

function filterRegionId(temp_region_id)
{

    if ($(temp_region_id) != 1) {


       $('.showheadline').hide(); }

    else { $('.showheadline').show(); }

}

真的我想做的是,一旦区域从原来改变了,div应该被隐藏 - 这个有效!

但是,一旦该人返回同一区域,div仍然隐藏。

filter_region从1-8回声,具体取决于地区。我意识到我已经将区域设置为1,这是为了测试。但是,即使if语句设置为1,它仍会在加载时显示div,即使该区域为2-8。希望这有任何意义!如果对我的解释有任何疑问,请随时询问。

最诚挚的问候, 帕特里克

3 个答案:

答案 0 :(得分:1)

试试这个,没有var

周围的$(..)
$('#filter_region').on('change', function(e) {    
     var temp_region_id = $('#filter_region').val();    
     filterRegionId(temp_region_id);
 });

function filterRegionId(temp_region_id)
{    
    if (temp_region_id != 1) {        
       $('.showheadline').hide(); 
    }    
    else { 
       $('.showheadline').show(); 
    }    
}

答案 1 :(得分:0)

文本输入的value属性将始终返回一个字符串。您需要解析该值以获得整数

 var temp_region_id = parseInt($('#filter_region').val(),10);

并从变量名称中移除$ filterRegionId($temp_region_id);if ($(temp_region_id) != 1) {


$('#filter_region').on('change', function(e) {
      var temp_region_id = parseInt($('#filter_region').val(),10);
      ///parse it to integer
      filterRegionId(temp_region_id);
   });

function filterRegionId(temp_region_id){
    if (temp_region_id!= 1)
       $('.showheadline').hide();
    else
       $('.showheadline').show();
}

答案 2 :(得分:0)

最好的解决方案是稍微重写代码。 请在顶部添加filterRegion功能并更改参数名称,如下所示

 var temp_region_id = $('#filter_region').val();
 filterRegionId(temp_region_id);
  $('#filter_region').on('change', function(e) {
  temp_region_id= $('#filter_region').val();
  filterRegionId(temp_region_id);
   });

function filterRegionId(temp_region_id)
{
if ($(temp_region_id) != 1) {
   $('.showheadline').hide(); 
}
else { 
     $('.showheadline').show(); 
   }
}