是否有任何 JavaScript 函数可以统一 Prototype 和 jQuery 中的 $ 函数?
是的,这是我现在面临的真正用例。我发现 Prototype 中的 $ 函数和 jQuery 中的 $ 相互冲突。我知道我们可以使用 jQuery.noConflict() 将 $ 重新分配回 Prototype,但是这样做,我将不得不重写使用该 $ 函数的 jquery 特定的 javacript 代码,或者在代码块中具有 jquery 特定的代码(例如。匿名函数)。
有没有更简单的方法,而不必重写两个库中的现有代码并将它们放在一页中?
可以回答这个问题的代码可能如下所示,非常感谢您的反馈:
<script type="text/javascript" src="/path/to/prototype.js"></script>
<script type="text/javascript" src="/path/to/jquery.js"></script>
<script type="text/javascript">
/* <![CDATA[ */
var $j = jQuery.noConflict();
var $p = $; // reference to prototype's $
var $ = function(E, F){
var isJQuery = true;
//TODO: logic to determine which $ to use here YOUR SUGGESTION HERE ;-)
var result = null;
if(isJQuery){
result = $j(E, F);
} else { // prototype
//TODO: code to delegate prototype $
}
return result;
}
/* ]]>*/
</script>
// ... any existing javacode jQuery and Prototype using $ function.
谢谢。
更新:重写问题更清楚。