虚拟主机域名注册-常见问题 → 网页制作 → Javascript | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[原创]解决jQuery和其他库的冲突
原创文章,转载请注明: 转载自jocean官方博客 本文链接地址: 解决jQuery和其他库的冲突 在jQuery库中,几乎所有的插件都被限制在它的命名空间里。通常,全局(global)对 象都被很好地存储在jQueiy命名空间里,因此当把jQuery和其他JavaScript库(例如Prototype、 MooTools或YUI) —起使用时,不会引起冲突。 注意默认情况下,jQuery用$作为自身的快捷方式。
在其他库和jQuery库都被加载完毕后,可以在任何时候调用jQuery.noConflict()函数 来将变量$的控制权移交给其他JavaScript库。示例如下: <html> <headx/head> . <body> <p id=npp”>test——- prototype<p> <p >test—– jQuery<p> <!引入 prototype –> <script src=”prototype-1 • 6• 0• 3• js” type=,ltext/javascriptH></script> <!弓丨入 jQuery –> <script src=n • • / • • /scripts/jquery-1.3 .1 • j s” type=,ftext/javascript,f> </script>
然后,就可以在程序里将jQuery ()函数作为jQuery对象的制造工厂。 此外,还有另一种选择。如果想确保jQuery不会与其他库冲突,但又想自定义一个快捷方式,可以进行如下操作:
可以自定义备用名称,例如jq、$J> awesomequery等。 如果不想给jQuery自定义这些备用名称,还想使用$而不管其他库的$()方法,同时又不 想与其他库相冲突,那么可以使用以下两种解决方法。 其一: //…省略其他代码 jQuery.noConflict(); jQuery(function($) { //将变量$的控制权让渡给prototype, js //使用jQuery设定页面加载时执行的函数
其二:
这应该是最理想的方式,因为可以通过改变最少的代码来实现全面的兼容性。
如果jQuery库在其他库之前就导入了,那么可以直接使用“jQuery”来做一些jQuery的 工作。同时,可以使用$()方法作为其他库的快捷方式。这里无需调用jQuerymoConflictO函 数。示例如下: <html> <headx/head> <body> <p id=”pp”>test—— prototype<p> <p >test—– jQuery<p> <!–先导入 jQuery –>
^ jQueiY>>>>> >»—————————————— :—- ^———————— 〈script src==fl • • / • . /scripts/jquery-1 • 3 • 1 • js” type=’ftext/javascript”> </script> <!—后导入其他库 <script src=”prototype-l•6•0•3.jsn type=”text/javascript”></script> <script language=,Tjavascript11 > jQuery (function () { //直接使用 jQuery,无需调用”jQuery.noConflict ()”函数 jQuery(“p”).click(function(){ alert( jQuery(this).text()); }) }) $ (nppn) . style.display = 1 nonef; //使用 prototype </script> </body> </html> 有了这些方法来解决冲突,就可以在项目中放心地引用jQueiy 了。 原创文章,转载请注明: 转载自jocean官方博客 本文链接地址: 解决jQuery和其他库的冲突
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
>> 相关文章 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||