我是新来的,所以请原谅任何初学者的错误。
我正在学习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();
有没有办法使用相同的名称,但仍然可以指向当前页面上的元素。
感谢您的帮助。
答案 0 :(得分:0)
你应该做的是将ajax加载后需要运行的代码放入ajax调用的成功回调中。
$.ajax({
url: 'http://example.com',
success: function() {
//do something when call completes successfully
}
);