在使用jQuery和jqxWidgetjqxMenu的客户端中,有时(大约10次中的3次)仅在一个特定页面上失败,以便用适当的CSS样式"丰富"该页面(以使其成为jqxMenu)。
jqxMenu包含的代码片段在客户端的每个其他页面上工作。与工作页面的唯一区别是,失败页面还包括来自另一台服务器的Javascript,以动态显示选项。
远程包含的代码看起来像:
document.write('<table cellspacing="2" cellspacing="2" border="0" align="center">');
document.write('<tr>');
document.write('<td><a href="http://www.someurl.com" target="_blank"><img src="https://someimage.com/jsp/icons/someimage.gif" border="0"
...
document.write('</tr>');
document.write('</table>');
当我在代码中静态嵌入生成的表时,不会出现问题。
修复问题的静态变体:
<table cellspacing="2" cellspacing="2" border="0" align="center">
<tr>
<td><a href="http://www.someurl.com" target="_blank"><img src="https://someimage.com/jsp/icons/someimage.gif" border="0"
...
</tr>
</table>
问题是:将document.write()
与jQuery和/或jqWidgets结合使用是否存在问题?
有什么解决办法(考虑包装器,因为解析和使用jQuery放置它们似乎有些过头了)?
document.write
阻止jQuery代码的执行,因为jQuery作用于DOM中已经存在的元素,而使用document.write时,这些元素不存在。所以jQuery实际上无法找到您的DOM元素。