我有一个页面dashboard.asp
它会打开一个对话框并使用ajax加载... profile.asp
在profile.asp
内,有与配置文件功能相关的各种jquery函数。一切都很好,Safari不会在加载的内容中加载$(document).ready
。
第二个问题是我应该在加载ajax的页面以及父页面中加入<script src="jquery.js"></script>
。
dashboard.asp
<script language="javascript">
$(document).ready(function(){
$("a[rel=profile]").live('click',function() {
var profileURL = $(this).attr('href');
var title = $(this).attr('title');
$.ajax({
url: profileURL,
cache: false,
success: function(data) {
$( 'html, body' ).animate( { scrollTop: 0 }, 0 );
$("#overlayer").fadeIn();
$('#profile_menu_wrapper').load('/profile.asp',{a:title},function(){
$('#profile_menu_wrapper').fadeIn(1000);
$("#profile").html(data);
$("#profile").fadeIn(1000);
});
}
});
return false;
});
});
</script>
哪个工作正常,并按我想要的方式打开一个对话框......
但是profile.asp
<script language="javascript">
$(document).ready(function(){
alert("Ready")
});
</script>
不运行......
答案 0 :(得分:1)
检查此Q&amp; A ..
jQuery UI Dialog window loaded within AJAX style jQuery UI Tabs
和http://www.christopherchin.com/blog/index.cfm/2009/3/19/jQuery--ajax-dialog--load-external-content
答案 1 :(得分:1)
更改profile.asp中的代码,如下所示:
<script language="javascript">
$(document).ready(InitProfileJqueryFunctionality);
function InitProfileJqueryFunctionality() {
alert("Some stuff");
}
</script>
然后更改Dashboard.asp中的代码,以便在加载的页面中调用该函数(如果存在)。
<script language="javascript">
$(document).ready(function(){
$("a[rel=profile]").live('click',function() {
$("#profile").hide();
var profileURL = $(this).attr('href');
var title = $(this).attr('title');
$.ajax({
url: profileURL,
cache: false,
success: function(data) {
$( 'html, body' ).animate( { scrollTop: 0 }, 0 );
$("#overlayer").fadeIn();
$('#profile_menu_wrapper').load('/profile.asp',{a:title},function(){
$('#profile_menu_wrapper').fadeIn(1000);
$("#profile").html(data);
$("#profile").fadeIn(1000);
if (typeof(InitProfileJqueryFunctionality) != 'undefined')
InitProfileJqueryFunctionality();
});
}
});
return false;
});
});
</script>
我想说保留在profile.asp页面中加载jQuery.js的引用是一个好主意,因为这样可以灵活地正常打开该页面(例如,不通过AJAX)并使其仍然有效
答案 2 :(得分:0)
哎呀!
我在加载了Ajax的内容中留下了<html><body>
等等,这些内容搞得一团糟!
感谢您的回答,并在上下文中提出正确的建议。