我正在使用jquery-ui-widget,1.10.3
的版本,该版本适用于加载了ajax的页面片段#1,但如果已加载片段#2,则会触发页面片段#2的错误 在 片段#1之后。
这很奇怪,因为即使我尝试使用1.10.3
覆盖1.8.21
当ajax加载片段#2(是的我意识到这是一个糟糕的黑客)时,使用小部件工厂的代码仍然尝试使用1.10.3
,因此会导致错误。
请注意,在正常页面加载期间不是一个问题,因为1.8.21
位于我的ajax div id="ajax_content"
之外,因此每次都会加载。
如何在ajax期间覆盖1.10.3
?
<html>
<div id="ajax_content">
Page fragment #1 content
<script src="jquery-ui-widget.1.10.3.js"></script>
</div
<script src="jquery-ui-widget.1.8.21.js"></script>
</html>
VS
<html>
<div id="ajax_content">
Page fragment #2 content
<script src="jquery-ui-widget.1.8.21.js"></script>
//having this script here or not has no effect if 1.10.3 was already loaded
</div>
<script src="jquery-ui-widget.1.8.21.js"></script>
</html>
答案 0 :(得分:1)
版本的jquery-ui-widget 不起作用。相反,问题的原因是添加到div innerHTML
的{{1}}的脚本将无法执行。
动态添加的脚本(可能是ajax请求的响应或使用js或jQuery动态添加到id="ajax_content"
)不会执行。根据@Kevin B的评论,不推荐也是如此。我通过以下两种解决方案中的任何一种解决了同样的问题:
你可能不同意这里的第二个解决方案,说这个问题是关于作为ajax响应收到的脚本,而我建议你重新修改你的方法并使用单独的页面。由于各种原因,这可能不适合您的方案,但如果阻止您这样做的唯一原因是这会导致代码重复,那么您可以使用innerHTML
之类的东西进行探索。