页面刷新后,jquery移动脚本无法运行

时间:2013-03-19 15:16:47

标签: jquery jsf jquery-mobile

我正在使用JQM和JSF。 在页面中,在我触发h:commondbutton并且它的动作重新执行字符串null''之后, 页面刷新和任何scprits不起作用。 我将断点放在就绪函数和移动pageinit函数中,但它们都不起作用。 当我删除jquerymobile库它工作。 对此有任何想法..

<script src="js/jquery-1.8.3.js"></script>
<script type="text/javascript">
  //<![CDATA[
  $(document).on('mobileinit', function() {
    $.mobile.defaultPageTransition = 'slide';
    $.mobile.hashListeningEnabled = false;
  });
  //]]>
</script>        
<script src="js/jquery.mobile-1.2.0.js"></script>



   $(document).ready(function(){
    //some codes here
});


<div data-role="page" id="page1" >
     <script type="text/javascript">

        $('#page1').live('pageinit', function() {  

     $("#getNewValuesLinkId").bind('click', function() {   
       $("#getnewValues").trigger("click");//this jsf button
       });    

  });


</div>

jsf h:commonbutton进程并返回空字符串“”。页面刷新,任何脚本都不起作用。

2 个答案:

答案 0 :(得分:1)

我遇到过类似的问题。您可以尝试将Javascript代码直接放在脚本标记中,即不在$(document).ready或$(document).on中。

E.g。不是这个:

<script>
    $(document).on('mobileinit', function() {
    $.mobile.defaultPageTransition = 'slide';
    $.mobile.hashListeningEnabled = false;
  });
</script>

但相反(在适当的地方):

<script>
    $.mobile.defaultPageTransition = 'slide';
    $.mobile.hashListeningEnabled = false;
</script>

答案 1 :(得分:0)

我有解决方法,但不知道问题的原因是什么。

  $(document).on('mobileinit', function() {
    $.mobile.defaultPageTransition = 'slide';
    $.mobile.hashListeningEnabled = false;
  });

这是在页面加载时上面的funksion工作。但我刷新后的项目不起作用。因此,有意味着此页面不会再次重新加载。 它让我想到了ajax的方法。在ajax进程之后,会调用任何页面脚本,因此不会调用ready,pageinit,mobile init函数。

所以我把下面的代码放在上面的mobileinit中。

$.mobile.ajaxEnabled = false;

解决方案就是

  $(document).on('mobileinit', function() {
    $.mobile.defaultPageTransition = 'slide';
    $.mobile.hashListeningEnabled = false;
    $.mobile.ajaxEnabled = false;
  });

我再次尝试这个页面如何使用ajax?