Gal*_*way 8 html javascript php jquery load
我认为这个问题以前没有提出过,至少不是我需要回答的问题.我正在使用jQuery的.load函数.加载页面片段时遇到问题.
使用类似的东西时:
$('#content').load('loadTest.html');
Run Code Online (Sandbox Code Playgroud)
loadTest.html上的所有脚本加载都很好.但是,在加载页面片段时,如下所示:
$('#content').load('loadTest.html #content');
Run Code Online (Sandbox Code Playgroud)
在更新DOM之前删除脚本
这在http://api.jquery.com/load/中有明确记载,其中说:
注意: 使用不带后缀选择器表达式的URL调用.load()时,会在删除脚本之前将内容传递给.html().这将在丢弃之前执行脚本块.但是,如果使用附加到URL的选择器表达式调用.load(),则在更新DOM之前会删除脚本,这就是它们永远不会被执行的原因.两种情况的示例如下所示:
我知道我可以在外部加载可以在任何地方使用的脚本,但问题是,我正在使用页面范围的ajax系统,其中所有内容都是动态加载的.所以我真的不喜欢在外部文件中使用我将要编写的每个javascript函数(此时为100).特别是因为其中一些javascript函数是从数据库加载的值中创建的,我无法在.js文件中考虑这些值.
在更新DOM之前,是否有任何解决方法可以删除脚本?我能以某种方式手动加载它们吗?任何微小的例子对我都有帮助.
像你说的。jQuery 在仅执行该块之前提取该元素。
您可以修改输出以使服务器以您需要的格式返回数据,或者只编写您自己的格式。它会提取您需要的元素并将它们输出到 DOM。
未经测试,但它会沿着这个方向..
$('#content').load('loadTest.html #content,script');
Run Code Online (Sandbox Code Playgroud)
从记忆中这更有效..
$.get('loadTest.html',function(r){
var els = $(r).find('#content,script');
$('#content').html(els);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1157 次 |
| 最近记录: |