【问题标题】:Combining jQuery plugin files generates errors组合 jQuery 插件文件会产生错误
【发布时间】:2011-01-31 13:56:26
【问题描述】:

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

合并后的脚本文件为:

test.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

在两个插件之间添加“jQuery.noConflict();”会有所帮助,但随后错误变为 $ 不是函数

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

谢谢 阿比

【问题讨论】:

  • 当您将代码粘贴到 Stackoverflow 上的问题中时,只需粘贴代码,选择它,然后单击编辑框顶部的“{}”。
  • 啊!我试图弄清楚那个。感谢您的提示。

标签: javascript jquery-plugins minimize


【解决方案1】:

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

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

【讨论】:

  • +100k 你是我的私人 Jhon Skeet,治愈了我 2 天的头痛
  • 太好了。也解决了我的问题。
  • 优秀。也解决了我的问题!
猜你喜欢
  • 2012-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-18
  • 2015-02-17
  • 2015-09-22
相关资源
最近更新 更多