2

我正在组合插件文件以减少 HTTP 请求的数量。删除了调试的最小化。

合并后的脚本文件为:

测试.js:

(function($){
    $.fn.extend({
    GetNewDiv: function(){
        return $('<div>Testing new div</div');
    }
    });
})(jQuery)

// ;jQuery.noConflict(); 
(function($){
    $.fn.extend({
    GetNewSpan: function(){
        return $('<span class="test">Testing new div</span>');
    }
    });
})(jQuery)

使用此文件的 HTML

<html>
<head>
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script src="test.js" type="text/javascript"></script>

<script type="text/javascript">

$(document).ready(function(){
    alert('document ready');
});
</script>
</head>
<body>
test message
</body>

在 Firefox 中打开文件会在 Firebug 中显示此错误

function ($) {$.fn.extend({GetNewDiv: function () {return $("<div>Testing new div</div");}});}(jQuery) is not a function
file:///C://js/test.js
Line 10

在 2 个插件之间添加“jQuery.noConflict();”会有所帮助,但随后错误更改为 $ is not a function

有什么想法有什么问题吗?将多个 .js 文件合并为一个文件的正确方法是什么?

谢谢阿比

4

1 回答 1

11

您只需要在文件之间使用分号。每一个……事物都是一个 JavaScript 表达式片段。没有分号,解析器认为表达式继续。

分号有时在 JavaScript 中是可选的,但如果不是,则不是。

于 2011-01-31T14:02:12.800 回答