2013-05-10 22 views
0

我要調用一個函數只如果窗口大小< 767(應與調整工作),然後點擊一個按鈕jQuery的 - 在調整大小並點擊一個按鈕後,通話功能

這段代碼我的作品完美,如果後我使窗口大小爲< 767並單擊搜索。但是,如果我點擊窗口大小爲> 767RESIZE< 767的按鈕,它不起作用。我正在尋找一種方法來結合所有<767resize並點擊按鈕?

這是我到目前爲止。你們能幫忙嗎?

function searchButtonClick(){ 

    if(jQuery(window).width() < 767){ 
     jQuery('.search_mob').slideUp(500); 
     jQuery('.carousel-wrapper').hide(); //show search function 
     jQuery('.innerSearhPopup').slideUp(300); //show search function 

     if (jQuery('.carousel-wrapper').css('display') == 'none') 
      { 
       jQuery('.innerSearhPopup').css({'top':'109px' }); 
      } 

     } 
} 
+1

請考慮使用帶媒體查詢的CSS代替。 – SLaks 2013-05-10 20:32:25

+0

不能。因爲這個函數有更多的條件。像檢查主頁或沒有,等等等 – user1074803 2013-05-10 20:33:30

+0

你可以把這些條件變成由jQuery管理的CSS類。 – SLaks 2013-05-10 20:36:29

回答

3

您需要添加一個事件處理程序窗口大小調整:

jQuery(window).resize(searchButtonClick); 

編輯 如果你只想要一次按鈕被點擊至少一次要做到這一點,就可以把第一次點擊之後的處理程序:

// keep track of whether you have attached the handler 
var isattached = false;     
function searchButtonClick(){ 
    // attach the handler if it hasn't been added yet 
    if (!isattached){     
     isattached = true; 
     jQuery(window).resize(searchButtonClick); 
    } 

    if(jQuery(window).width() < 767){ 
     jQuery('.search_mob').slideUp(500); 
     jQuery('.carousel-wrapper').hide(); //show search function 
     jQuery('.innerSearhPopup').slideUp(300); //show search function 

     if (jQuery('.carousel-wrapper').css('display') == 'none') 
      { 
       jQuery('.innerSearhPopup').css({'top':'109px' }); 
      } 

     } 
} 
+0

但是,如果我把它放在函數之外,這不會觸發按鈕單擊。每次我調整窗口大小時都會觸發。 – user1074803 2013-05-10 20:40:29

+0

你需要一個事件處理程序來點擊按鈕並調整窗口大小。這樣,當窗口調整大小或點擊按鈕時,函數將被調用。或者你只想在點擊按鈕後執行代碼? – Kenneth 2013-05-10 20:42:03

+0

謝謝Kenneth。我只想在按鈕被點擊後執行代碼。 – user1074803 2013-05-10 20:44:17

相關問題