函数jQuery中的Prototype

时间:2011-05-18 13:10:47

标签: jquery prototypejs

我有两个文件 - prototype.js jquery.js

prototype.js 中有:

function check(www) {
//....
}
jquery.js 中的

有:

jQuery('#aaa').click(function() {
    var bbb = $this.val();  
        //-----
         check(www);
        //--------

    });

如何正确使用支票?

1 个答案:

答案 0 :(得分:2)

如果真的声明如图所示,你可以按照你所示的方式调用它。它在一个文件中定义然后在另一个文件中使用并不重要;加载文件后,它们都存在于同一个执行环境中。但我不记得Prototype在全球范围内具有check功能。

请注意,如果您在同一页面上使用Prototype和jQuery,则必须告诉jQuery不要使用$符号:

jQuery.noConflict();

然后你可以随心所欲地使用Prototype和jQuery。例如:

<script src='prototype.js'></script>
<script src='jquery.js'></script>
<script>
jQuery.noConflict();
jQuery(function() {
    // Get a jQuery instance containing elements with class "foo"
    var foo = jQuery(".foo");

    // Retrieve the first matching element, use Prototype's `$()` to extend it
    // (automatic on some browsers, not on IE), then call Prototype's `update` function.
    $(foo[0]).update("Hi there");
});
</script>

如您所见,如果您愿意,可以散布两者。我不是说这是一个好主意,但有时候这是必要的,特别是当你逐步将页面或网站从一个库转换到另一个库时。

如果您习惯使用$符号编写jQuery代码,则仍可以根据需要对代码的整个部分执行此操作。这是一个相当常见的习语:

(function($) {
    // Within this function, $ = jQuery
    ....
})(jQuery);

隐藏该函数中的$符号(通过使其成为参数),并将jQuery传递给该参数。或者你可以更明确:

(function() {
    var $ = jQuery; // Within this function, $ = jQuery
    ....
})();

这有很多相同的事情,但更明显。