为什么我必须刷新我的页面才能运行javascript函数?

时间:2012-09-22 01:33:50

标签: jquery

我正在开发一个移动网站并使用jQuery。

当我加载某个页面并单击所需的按钮时,在刷新页面之前代码不会执行。这是为什么?

这就是我的方式

script.js

$(document).ready(function() 
{ 
  $("#user-save").click(
      function(e)
       {
         alert(/clickity-click/);
       });
});

page.php

<html>
   <head>
       <!-- Other jQuery files here -->
      <script src="script.js"></script>
   </head>
<body>
   <div id="user-save" data-role="button">Click me like a boss</div>
</body>
</html>

3 个答案:

答案 0 :(得分:3)

JQuery Mobile加载页面的方式与“普通”javascript应用程序不同。您通常需要绑定到pageinit事件而不是document.ready。

有关此主题的信息,请参阅this previous SO discussion

答案 1 :(得分:3)

我花了几个小时在有问题的页面上重写代码,只是意识到问题与链接/上一页有关。

链接/上一页上的锚标记和链接,指向您希望确保$(document).ready(init)运行的页面的锚标记和链接,需要包含data-ajax="false"属性,如下所示:

<a href="yourpage.html" data-ajax="false"> 

这将确保JQuery Mobile不会期望您使用AJAX动态加载内容,并且您实际上正在导航到另一个/新页面。换句话说,如果JQuery Mobile加载了不同的/新页面,它将只运行$(document).ready()

答案 2 :(得分:0)

改变这些方面:

  1. <script type='text/javascript' src="script.js"></script>
  2. alert('clickity-click');