我有一个使用 jQuery 1.8 编写的 javascript 小部件,它加载到使用 jQuery 1.3 的客户端网站上。如果没有一些非常丑陋的黑客,我无法让 noConflict 在 IE 中正常工作。这是我的小部件呈现后页面的样子:
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.3.min.js"></script>
</head>
<html>
<body>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script>
$jq = $.noConflict();
</script>
</body>
</html>
在 chrome 中,这很好用,$jq 被定义为 jQuery 1.8.3,但在 IE 8 中这不起作用,$jq 被定义为 jQuery 1.3。我的猜测是它的时间问题,脚本在新的 jQuery 加载之前被执行。我放入了一些回调定时器并且它可以工作,但我无法想象嵌入回调定时器是正确的方法。
有任何想法吗?
编辑
我不能命名 jQuery1.3,客户端在整个页面中使用它并且不想升级。