我正在尝试结合几个库——其中一些依赖于prototype.js,一些依赖于jQuery。
两组库都使用“$”,分别由原型和 jQuery 定义。
有没有办法让我确保每组库都引用正确的 $?我希望能够在我的代码中从两组库中调用函数。
我正在尝试结合几个库——其中一些依赖于prototype.js,一些依赖于jQuery。
两组库都使用“$”,分别由原型和 jQuery 定义。
有没有办法让我确保每组库都引用正确的 $?我希望能够在我的代码中从两组库中调用函数。
使用闭包:
(function($) {
//jQuery stuff
$('.elem') // $ refers to jQuery
})(jQuery);
否则使用 jQuery noConflict:
<!-- Putting jQuery into no-conflict mode. -->
<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>
var $j = jQuery.noConflict();
// $j is now an alias to the jQuery function; creating the new alias is optional.
$j(document).ready(function() {
$j( "div" ).hide();
});
// The $ variable now has the prototype meaning, which is a shortcut for
// document.getElementById(). mainDiv below is a DOM element, not a jQuery object.
window.onload = function() {
var mainDiv = $( "main" );
}
</script>
要对此进行扩展,您可以使用 'j' 之类的东西作为 jQuery 的东西,并为原型保留美元符号:
var j = jQuery.noConflict();
// Do something with jQuery
j( "div p" ).hide();
// Do something with another library's $()
$( "content" ).style.display = "none";