jQueryAjax:当函数事先未知时,在成功时重新执行函数
jQuery Ajax: re-executing function on success, when function is NOT known beforehand
我是一名WordPress主题开发人员(尽管这不是WordPress特有的问题),我已经构建了一个具有这样结构的优化主题。。。
<body>
<div id="site-header"> content here </div>
<div id="site-body"> content here </div>
<div id="site-footer"> content here </div>
<body>
现在,当点击任何链接时,都会执行这样的jQuery脚本。。。
$.ajax({
url: targetURL,
dataType: "html",
success: function(response) {
var targetBody = $(response).filter('#site-body').html();
$('body').prepend('<div id="ajax-body"></div>');
$('#ajax-body').append(targetBody);
}
});
而且效果非常好。但现在的问题是,目标页面可能包含一些元素,例如图像滑块,它使用了一些jquery插件。现在,当我们将在#ajax bodydiv中加载新的页面内容时,图像滑块需要重新启动相应的jquery插件以获得正确的行为。。。
一种解决方案是在Ajax回调函数中调用此函数,它是有效的。但是,只有当我们确切地了解函数时,这种方法才有效,因此可以手动将它们包含在ajax回调中。
现在的情况是,最终用户可以使用任何jquery插件,而我不能在ajax回调中手动调用数百个甚至数千个jquery插件。
这里的解决方案是什么?
如果您可以将零件分解为单独的文件,那么您可以使用jQuery的.load()
函数。如果没有选择器表达式,它将运行html中的任何脚本块。
http://api.jquery.com/load/
我遇到了一个类似的需求,$.load()
不能完全按照我需要的方式工作,所以我用它自己的function subPage_init()
设计了每个"模板"页面,在我的ajax脚本加载它之后,我会运行它。
我不太喜欢依赖惯例,但有时这是最好的选择。
相关文章:
- 如何在回调函数中执行流
- javascript函数和代码隐藏函数的执行顺序
- 如何从另一个处理程序内部取消JavaScript事件处理程序函数的执行
- JavaScript 函数同步执行
- BOOMR.subscribe函数未执行
- javascript函数未执行
- 如何让JS函数自行执行
- 在OrientDB javascript函数中执行命令后获得rid
- 脚本中的即时函数未执行
- 在执行所有回调函数后执行操作
- 为什么 body onload = javascript 函数连续执行
- JavaScript 函数不执行
- 为什么控制器函数没有执行 Angular Js 1.5.5
- jQuery/Javascript 延迟函数的执行,直到多个函数完成
- jQuery $.get() JSON 函数正在执行,但不会产生任何结果
- SQLite+Javascript:在每个其他函数中执行多个查询
- 如何停止Javascript函数的执行
- 如何延迟javascript函数的执行
- 表单函数未执行
- Jquery on('单击')..函数只执行一次