本文實例分析了jquery mobile開發常見問題。分享給大家供大家參考,具體如下:
jquery mobile功能很強大,有了它,不用在程序中,寫方法去判斷,是什么手機了,完全可以用js來實現各種智能手機的的兼容性。也是因為功能強大,jquery mobile插件,200多K,min也有140多K。
1、jquery mobile是通過ajax來進行頁面請求,ajax大家都知道,是不涮新頁面的。也就是說地址欄的變動也不是真實的涮新。這樣就有問題了,js只有刷新頁面的時候才會執行,起作用,頁面中的js代碼刷新頁面起作用,點了頁面里面的跳轉,在轉回來就不起作用了。
錯誤代碼:
<script type="text/javascript"> $(function(){ $('#search01').bind("click",function(){ $('.searchPanel').show(); }); }); </script>
正確代碼:
<script type="text/javascript"> $(function(){ $('#search01').live("click",function(){ //jquery 1.7系列 $('.searchPanel').show(); }); }); </script>
如果是jquery 1.9系列的
<script type="text/javascript"> $(document).on('click', '#search01', function () { //jquery 1.9系列 $('.searchPanel').show(); }); </script>
2、所有頁面都在一個頁面里面,這個時候,就要注意了,id不要用一樣的,不然只會讀取第一個。多頁面在一個頁面里面,會出現很多問題。例如算標簽到窗口頂部的距離,就會不準。
錯誤寫法:
$('html,body').animate({ scrollTop: $('.content').offset().top }, 100);
這樣寫的問題是,當前頁面,前面很可能有很多頁面,這樣top值就不對了,你如果刷新頁面值就會正確
正確寫法:
$('html,body').animate({ scrollTop: $('.ui-page-active .content').offset().top }, 100);
.ui-page-active,表示當前激活的頁面,這樣算出來的高度就是對的。
3、php變量賦值給JS變量,有的時候會起作用,有的時候不能。
color = '<?php echo $color?>';
對于這個問題,也沒有找到是什么原因產生的。但是,可以用其他方法解決。
<input type="hidden" id='color' value='<?php echo $color;?>'> <script type="text/javascript"> color = $('.ui-page-active #color').val(); </script>
希望本文所述對大家jQuery程序設計有所幫助。