Dón*_*nal 33 javascript jquery prototypejs
我的几个页面同时使用JQuery和Protoype.由于我升级到JQuery的1.3版本,这似乎导致了问题,因为两个库都定义了一个名为'$'的函数.
JQuery提供了一个函数noConflict(),它将$的控制放弃到可能正在使用它的其他库.所以看起来我需要浏览所有看起来像这样的页面:
<head>
<script type="text/javascript" src="/obp/js/prototype.js"></script>
<script type="text/javascript" src="/obp/js/jquery.js"></script>
</head>
Run Code Online (Sandbox Code Playgroud)
并将它们更改为如下所示:
<head>
<script type="text/javascript" src="/obp/js/prototype.js"></script>
<script type="text/javascript" src="/obp/js/jquery.js"></script>
<script type="text/javascript">
jQuery.noConflict();
var $j = jQuery;
</script>
</head>
Run Code Online (Sandbox Code Playgroud)
然后,我应该能够为Prototype使用'$',为JQuery使用'$ j'(或'jQuery').我并不完全乐意在每个相关页面中复制这两行代码,并期望在某些时候有人可能忘记将它们添加到新页面.我宁愿能够做到以下几点
query-noconflict.js"包含" 的文件j jquery.js和上面显示的2行代码jquery-noconflict.js(而不是jquery.js)但是,我不确定是否可以以我描述的方式将一个JS文件包含在另一个JS文件中?当然另一种解决方案就是直接将上面两行代码添加到jquery.js中,但如果我这样做,我需要记住每次升级JQuery时都要这样做.
jmo*_*iro 19
目前你可以这样做:
<head>
<script type="text/javascript" src="/obp/js/prototype.js"></script>
<script type="text/javascript" src="/obp/js/jquery.js"></script>
<script type="text/javascript">
var $j = jQuery.noConflict();
</script>
</head>
Run Code Online (Sandbox Code Playgroud)
然后,使用jQuery as $j()和Prototype $().
小智 5
此解决方案工作正常:
jQuery.noConflict();
var $j = jQuery;
Run Code Online (Sandbox Code Playgroud)
现在使用$j代替$您的 jQuery 代码,例如:
$j(document).ready(function() {
$j('#div_id').innerfade({
// some stuff
});
});
Run Code Online (Sandbox Code Playgroud)