看你怎么动态加载页面,感觉你只是动态将页面的htmlbody的内容动态加载了,把script给忽略了。你可以调试下,看是否只是加载内容而忽略script标签。。
十多年建站经验, 成都网站设计、做网站客户的见证与正确选择。创新互联公司提供完善的营销型网页建站明细报价表。后期开发更加便捷高效,我们致力于追求更美、更快、更规范。
解决方法有,1.用iframe来动态载入页面,这样会像页面解释那样,什么都加载了。2.将动态加载页面之前,提前载入脚本代码。3.动态请求页面的同时,也动态的添加脚本。注意的是要同时加载成功后,再调用方法
代码如下,
$.ajax(
{
type: "POST",
contentType: "application/json",
dataType: 'json',
success: function(result) {
//这里是Code
},
error: function(result, status) {
}
});
要想组织函数在code区继续执行,只能通过设置变量来控制,如下
设一个JS的全局变量STOPIT,初始值为FLASE.
在BUTTON的点击事件里设此变量为真。
在AJAX的回调函数的开头加上:
$.ajax(
{
type: "POST",
contentType: "application/json",
dataType: 'json',
success: function(result) {
if(STOPIT) return;//此处阻止函数执行。
},
error: function(result, status) {
}
});
$.ajax:基础方法
语法:jQuery.ajax([settings])
.load:载入远程 HTML 文件代码并插入至 DOM 中
语法:load( url, [data], [callback] )
$.get:使用GET方式来进行异步请求
语法:jQuery.get( url, [data], [callback] )
$.post:使用POST方式来进行异步请求
语法:jQuery.post( url, [data], [callback], [type] )
$.getScript:通过 GET 方式请求载入并执行一个 JavaScript 文件
语法:jQuery.getScript( url, [callback] )
jQuery.ajax( options ) : 通过 HTTP 请求加载远程数据
这个是jQuery 的底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。
$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该对象,但特殊情况下可用于手动终止请求。
注意: 如果你指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml")。错误的 MIME 类型可能导致不可预知的错误。见 Specifying the Data Type for AJAX Requests 。
当设置 datatype 类型为 'script' 的时候,所有的远程(不在同一个域中)POST请求都回转换为GET方式。
设置async参数:
(默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
$.ajax({
type: "get",
url: "",
beforeSend: function(XMLHttpRequest){
//ShowLoading();
},
success: function(data, textStatus){
$(".ajax.ajaxResult").html("");
$("item",data).each(function(i, domEle){
$(".ajax.ajaxResult").append("li"+$(domEle).children("title").text()+"/li");
});
},
complete: function(XMLHttpRequest, textStatus){
//HideLoading();
},
error: function(){
//请求出错处理
}
});
function(data) {
var tmp = eval(data);
for (var i = 0; i tmp.length; i++) {
$("#tab").append("tr " + "tddiv class = 'textFlow' title = " + tmp[i].sourceExplain + " id = " + a + "" + tmp[i].sourceExplain + "/div/td" + "tdinput type='button' class='show_jl_btn' value='举例' onclick='show_jlmodel(" + i + ")'/div class='jlval'input type = 'hidden' value = " + tmp[i].sourceExample + " id = '" + i + "se'//div /td" + "tddiv class = 'textFlow' title = " + tmp[i].sourceAudioName + "" + tmp[i].sourceAudioName + "/td" + "tddiv class = 'textFlow' title = " + tmp[i].sourceVidoName + "" + tmp[i].sourceVidoName + "/td" + "/tr");
var html = $("#tab").html().replace(new RegExp("undefined","g"),"");
$("#tab").html(html);
}
代码如下:
script type="text/javascript" src="scripts/jquery.pack.js"/script
script type="text/javascript" src="scripts/jquery.blockUI.js"/script
script type="text/javascript"
$().ajaxStop($.unblockUI);
function getPage() {
$.ajax({ url: '/login.aspx', cache: false, function(data){alert(data)}});
}
$(document).ready(function() {
$('#lnkLogin').click(function() {
$.blockUI();
getPage();
});
});
/script
body
a id="lnkLogin" href="login.aspx"登陆/a
/body
点击连接后显示blockUI的内容,就是"please waiting。。",然后alert(data)也把请求的页面获取了(login.aspx页面)
Jquery ajax 本来就不阻断页面的啊
可以先向对容器写点内容提示:
$('#div').html("正在载入数据...");
$('#div').load( url , false);