2013-08-22 98 views
0

我有問題用jQuery彈出頁腳。我的代碼是工作,但唯一的問題是它不起作用的第一次點擊按鈕,它通過第二次單擊按鈕工作?任何想法? 這裏是我的代碼:用jQuery在第一次點擊的網站上彈出頁腳?

<script type="text/javascript"> 

    jQuery(function($) { 

     var open = false; 

     $('#footerSlideButton').click(function() { 

      if(open === false) { 

       $('#footerSlideContainer').animate({ height: '0' }); 

       $(this).css('backgroundPosition', 'top left'); 

       open = true; 

      } else { 

       $('#footerSlideContainer').animate({ height: '150px' }); 

       $(this).css('backgroundPosition', 'bottom left'); 

       open = false; 

      } 

     });   

    }); 

</script> 
+0

應該'VAR開放= true;'be'var open = false;'? –

+0

備註:對於'if'語句,如果var是一個bool,你可以簡單地說'if(open)'爲真,'if(!open)'爲假 – Dom

+0

oops。如果它是假的,也有同樣的問題。它通過第二次點擊按鈕來工作。我想用第一個點擊頁腳彈出...你認爲它與CSS有關嗎? – user2708492

回答

0

我會濃縮成這樣:

(function($){ 
    window.opened=false; 
    $('#footerSlideButton').on('click', function() { 
     $('#footerSlideContainer').animate({ height : opened ? '0' : '150px'}); 
     $(this).css('backgroundPosition', opened ? 'top left' : 'bottom left'); 
     opened = !opened; 
    }); 
})(jQuery); 

你也可以存儲在元數據開放狀態:

(function($){ 
    $('#footerSlideButton').on('click', function() { 
     $('#footerSlideContainer').animate({ height : $(this).data('open') ? '0' : '150px'}); 
     $(this).css('backgroundPosition', $(this).data('open') ? 'top left' : 'bottom left'); 
     $(this).data('open', !$(this).data('open')); 
    }); 
})(jQuery); 
+0

你爲什麼在函數內部使用'window.open'?我不會建議。它*應該*是'var open = false;'P.S. https://developer.mozilla.org/en-US/docs/Web/API/window.open –

+0

我同意你的說法windows.open不起作用。上面的代碼都不起作用! – user2708492

+0

是的,window.open是我的一個很大的疏忽。 –

相關問題