2016-12-08 24 views
0

我寫了一個小過濾器來點擊3個不同的lvl 1過濾器和3個不同的lvl 2過濾器。在每次點擊一個過濾器時,它應顯示每個過濾器的結果。但點擊幾次後,瀏覽器開始變得越來越慢。我在裏面放了一個警報,發現每次我點擊一個過濾器,函數都會運行2次 - > 4次 - > 8次 - > 16次。所以如果我點擊30次過濾器,瀏覽器就會崩潰。 請致電幫助JS兩層過濾器工作,但點擊太多過濾器後得到循環。瀏覽器崩潰

問候最大

var fil1 = ""; 
    var fil2 = ""; 
    var filcomp = ""; 

$(function func() { 




/*Filter 1*/ 
$("#Filter_btn_1").click(function() { 
    fil1 = ".filter_option1"; 
    filter(); 
}); 
$("#Filter_btn_2").click(function() { 
    fil1 = ".filter_option2"; 
    filter(); 
}); 
$("#Filter_btn_3").click(function() { 
    fil1 = ".filter_option3"; 
    filter(); 
}); 

/*Filter 2*/ 
$("#Filter_btn_4").click(function() { 
    fil2 = ".filter_option4"; 
    filter(); 
}); 
$("#Filter_btn_5").click(function() { 
    fil2 = ".filter_option5"; 
    filter(); 
}); 
$("#Filter_btn_6").click(function() { 
    fil2 = ".filter_option6"; 
    filter(); 
}); 



filcomp = fil1 + fil2; 



$('.filter_btn').click(function() { 
    $(".filter_btn").removeClass("filter_selected"); 
    $(this).addClass("filter_selected"); 
}); 

$('.filter_btn2').click(function() { 
    $(".filter_btn2").removeClass("filter_selected"); 
    $(this).addClass("filter_selected"); 
}); 


$('.filter_reset_btn').click(function() { 
    location.reload(); 

}); 

function filter() { 
    alert(filcomp); 
    func(); 
    $(".post").hide(); 
    $("div").filter(filcomp).show(); 
}; 

}); 
+0

爲什麼你所擁有的一切包在FUNC這是由所謂的過濾器,過濾器的時候是FUNC內的功能? 我可能會首先刪除func,而不是在過濾器中設置filcomp,因爲無論如何點擊按鈕時都會調用過濾器 – DibsyJr

回答

0

我usesd

var counter =0; 

if(counter==0){    
     function filter() { 
      counter = 1; 
      func(); 
      $(".career_post").hide(); 
      $("div").filter(filcomp).show(); 
      return counter; 
     }; 
};