Javascript Jquery使用完整的ajax站点管理本地脚本
我的应用程序基本上是这样工作的: php管理对其他页面的调用 每个页面包含2个函数onLoad()和onClose(),它们在每个页面中重新定义 php调用页面并执行onLoad 基本上,我将页面预加载到一个隐藏的div中,执行预定义的$.onLoad函数,然后将加载的内容放入一个可见的div中 我的问题只是关于onLoad()作用域,我想在更改页面时从jquery eval seq中删除代码,但我需要一种在page.php文件中定义代码的方法,而不需要知道容器 eval/seq可能是jquery的eval队列,找不到相关信息,只需使用firebug获取 总之,我希望在更改上下文(页面)时能够删除注入的dom和脚本 index.phpJavascript Jquery使用完整的ajax站点管理本地脚本,javascript,jquery,Javascript,Jquery,我的应用程序基本上是这样工作的: php管理对其他页面的调用 每个页面包含2个函数onLoad()和onClose(),它们在每个页面中重新定义 php调用页面并执行onLoad 基本上,我将页面预加载到一个隐藏的div中,执行预定义的$.onLoad函数,然后将加载的内容放入一个可见的div中 我的问题只是关于onLoad()作用域,我想在更改页面时从jquery eval seq中删除代码,但我需要一种在page.php文件中定义代码的方法,而不需要知道容器 eval/seq可能是jquer
$.onLoad = function() {}
$("#blabla").onChange(function() {
$("#data_iframe").load(chaineUrl, {}, function(responseText, textStatus, XMLHttpRequest) {
$("#data_iframe").ready(function() {
$("#data_div").children().remove();
$.onLoad();
$("#data_iframe").children().hide().appendTo($("#data_div")).show(); $("#data_iframe").children().remove();
$.onLoad = undefined;
}
});
});
$("#blabla").onChange(function() {
$("#data_div").load(page.php);
});
page.php
<script>
$.onClose = (function(){
$('#container').blablabla();
//alert("test");
});
$.onLoad = (function(){
$('#container').blablabla();
}
</script>
<script>
$(document).ready(function() {
$('#container').blablabla();
});
</script>
$.onClose=(函数(){
$(“#容器”).blabla();
//警报(“测试”);
});
$.onLoad=(函数(){
$(“#容器”).blabla();
}
问题在于每次打开一个页面时,jquery EVAL/SEQ都会不断增长
还有一些副作用,比如多次调用函数
我想这是一个范围问题,所以你能帮我纠正我的代码吗
(我尝试过带美元或不带美元,但没有改变任何东西)
仅供参考
<div id="data_div"></div>
<div id="data_iframe"></div>
谢谢我通常使用$(document)。ready而不是onload。无需在load complete函数中执行“onload”触发器。page.php中的ready函数也会执行相同的操作。
直接加载到data_div怎么样
index.php
$.onLoad = function() {}
$("#blabla").onChange(function() {
$("#data_iframe").load(chaineUrl, {}, function(responseText, textStatus, XMLHttpRequest) {
$("#data_iframe").ready(function() {
$("#data_div").children().remove();
$.onLoad();
$("#data_iframe").children().hide().appendTo($("#data_div")).show(); $("#data_iframe").children().remove();
$.onLoad = undefined;
}
});
});
$("#blabla").onChange(function() {
$("#data_div").load(page.php);
});
page.php
<script>
$.onClose = (function(){
$('#container').blablabla();
//alert("test");
});
$.onLoad = (function(){
$('#container').blablabla();
}
</script>
<script>
$(document).ready(function() {
$('#container').blablabla();
});
</script>
$(文档).ready(函数(){
$(“#容器”).blabla();
});
我以前没有尝试过页面关闭功能,可能这不是您想要的。但您可以尝试:
<script>
$(document).ready(function() {
$('#container').blablabla();
$(window).unbind('unload');
$(window).unload(function(){
$('#container').blablabla();
//alert("test");
})
});
</script>
$(文档).ready(函数(){
$(“#容器”).blabla();
$(窗口)。解除绑定(“卸载”);
$(窗口)。卸载(函数(){
$(“#容器”).blabla();
//警报(“测试”);
})
});
嗯,jQuery不评估SQL。为什么您提到SQL?是否愿意提供更多细节?抱歉,hehe EVAL/SEQ不是SQL(参见firebug)你仍然没有提供足够的信息给任何人来帮助你。你能链接到一个例子吗?我想当我使用jquery加载函数时,它会评估我页面中的脚本,有可能删除评估过的脚本吗?谢谢,我可能对我的解决方案有过多的意见…我想我的问题更多的是,即使在更改之后,脚本在DOM中的保存方式页面…我不知道为什么,但在重新加载主页之前,evaljs似乎从未被处理过