通过AJAX链接加载时的Jquery Document.ready

时间:2014-03-03 22:18:05

标签: javascript php jquery ajax jquery-mobile

我是新来的,所以请原谅任何初学者的错误。

我正在学习jQuery(v1.9.1)以及使用jQuery Mobile(v1.3.1)。我在使用AJAX链接和javascript时遇到两个问题:

1)当我通过jqm提供的默认AJAX链接方法链接页面时,我失去了在后续页面上运行任何新加载的javascript的功能。即当我从page1.php转到page2.php时,我可以执行javascript,如下所示(此代码在page2.php中):

<script>
$(document).ready(function(){
    $('#form_field_email').focus();
});

</script>

在浏览了大量问题后,我认为这是因为在初始页面加载后没有评估新脚本。因此,我试图将我的所有代码移到.js文件上,我在page1.php上加载。但有时我想在页面加载时触发操作(如上所述)。

有没有办法在不使用eval函数的情况下实现这个目的?

2)在类似的说明中,如果page1.php上的DIV的id是'messageBox',但是如果我在page2.php上对另一个DIV使用相同的id,我将失去控制新绘制的DIV的能力在第2页上,因为javascript仍然指向不再可见的旧DIV。

$('#messageBox').show();

有没有办法使用相同的名称,但仍然可以指向当前页面上的元素。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你应该做的是将ajax加载后需要运行的代码放入ajax调用的成功回调中。

$.ajax({
  url: 'http://example.com',
  success: function() {
    //do something when call completes successfully
  }
);