2015-12-24 44 views
4

當窗口到達640px時,我有一小段代碼要觸發。或以下 我嘗試了許多不同的建議,我已經在這裏或其他地方找到了,但沒有一個可行。如何觸發?

$(function() { 
    $('p').css('display','none'); 
     $('h1').click(function(){ 
      $('p').stop(true,true).slideToggle(1000); 
    }); 
}); 
+0

綁定到窗口'resize'事件來運行一個函數每當窗口大小改變時。 – Barmar

+0

不要忘記選擇接受的答案。 – Phiter

回答

4

可以綁定窗口大小調整事件做:

$(window).on('resize', function(event){ 
// Do stuff here 
}); 

你可以得到窗口的大小做:

var windowWidth = $(window).width(); 
if(windowWidth < 640){ 
    // Do stuff here 
} 

所以,你的功能會像這樣:

$(window).on('resize', function(event) 
    { 
     var windowWidth = $(window).width(); 
     if(windowWidth < 640){ 
     $('p').css('display','none'); 
      $('h1').click(function(){ 
       $('p').stop(true,true).slideToggle(1000); 
     }); 

    } 
}); 
+1

當'window'獲得640px以下時,'click'處理程序將被多次添加。你需要照顧它,這樣它不會發生多次。 – vijayP

+0

我沒有讓代碼錯誤的證明,我只是告訴他的方式。但是可能有一個布爾值來檢查函數是否已經觸發過一次。 – Phiter

+0

我剛剛測試過它,問題就像我自己的代碼一樣,當窗口ID比640px寬時,它也可以工作。我也嘗試了一個if else語句,但是我曾經嘗試過的東西似乎沒有工作...... –