2014-01-06 76 views
1

如果頁面加載和調整大小的窗口寬度小於768px,我不想觸發showCover()函數。使用下面的代碼,即使窗口小於768px,它仍然被解僱。如果窗口寬度小於768px,請不要觸發功能

function ipsThemeViewer() { 

     jQuery(window).resize(function() { 
      if (jQuery(window).width() < 768) return false; 
      showCover(); 
     }).resize(); 

    } 

    function showCover() { 
     jQuery('#ipsThemeViewerScreen').hover(function() { 
      var t = jQuery(this); 
      jQuery('.cover').stop().fadeIn('fast'); 
     }, function() { 
      var t = jQuery(this); 
      jQuery('.cover').stop().fadeOut('fast'); 
     }); 
    } 
+1

你明白'.hover()'結合事件處理程序,所以他們被束縛了一遍又一遍?這不好。 –

回答

3

我會去周圍的其他方法:

jQuery(function($) { // DOM READY AND SECURE $ ALIAS 

    var winIsSmall; 

    function testWinSize(){ 
     winIsSmall= $(window).width() < 768; // BOOLEAN 
    } 

    $(window).on("load resize", testWinSize); 

    $('#ipsThemeViewerScreen').hover(function() {    
     if(winIsSmall){ 
      // need something here? 
     }else{ 
      $('.cover').stop().fadeToggle('fast'); 
     } 
    }); 

}); 
+0

我認爲我誤解了一些基本的東西;但是:'$(window).on('load resize',winIsSmall);'?這不僅僅是在'load'和'resize'上返回'true' /'false'嗎?布爾值是否有用? –

+1

完美,謝謝。我將它改爲if(!winIsSmall())//淡入 – tctc91

+1

@DavidThomas Woooops。編輯後,我急於做深夜咖啡。 –

相關問題