2017-04-19 57 views
0

嗨,大家請指教,如果這是在某些窗口寬度上運行代碼的正確方法。jquery hide()/ show()在窗口寬度

$(window).resize(function(){ 
var width = $(window).width(); 
if(width <= 780){ 
    jQuery(".answers").hide(); 
    jQuery(".container h4").click(function(){ 
    jQuery(this).next(".answers").siblings(".answers:visible").slideToggle(); 
    jQuery(this).next(".answers").slideToggle(); 
    }); 
} 

else{ 
    jQuery(".answers").show(); 
} 
}) 

在寬度大於700px的情況下,如果我點擊這個問題..整個事情一直在搖晃。請告知--- Jsfiddle鏈接https://jsfiddle.net/bw6k874b/28/

+1

你需要通過JS做呢?爲什麼不通過CSS呢?更好的表現方式。擺動是由最初隱藏的元素引起的,每當窗口被調整大小時,如果寬度大於780px,它們將被顯示。 –

+1

這裏有一些幫助,沒有擺動:https://jsfiddle.net/e4g4a4m2/ – Mazz

+0

我正在通過Js做,因爲我想要答案div,如果用戶點擊其他股利。 –

回答

1

如果.answers已被隱藏,您只需要檢查jQuery(".answers").is(':hidden')

$(window).resize(function() { 
var width = $(window).width(); 
if (width <= 780) { 
    if (jQuery(".answers").is(':hidden')) return; // This is the fix 
    jQuery(".answers").hide(); 
    jQuery(".container h4").click(function() { 
     jQuery(this).next(".answers").siblings(".answers:visible").slideToggle(); 
     jQuery(this).next(".answers").slideToggle(); 
    }); 
} else { 
    jQuery(".answers").show(); 
} 
}) 

這裏是你沒有擺動:https://jsfiddle.net/e4g4a4m2