将一些自定义Jquery函数放入外部脚本

时间:2010-10-06 14:37:11

标签: jquery external

我有以下两个功能,我需要帮助将这些功能移动到外部文件中。

 $.fn.clearSelect = function () {
        return this.each(function () {
            if (this.tagName == 'SELECT')
                this.options.length = 0;
        });
    }

    $.fn.addItems = function(data) {
        return this.each(function () {
            var list = this;
            $.each(data, function (index, itemData) {
                var option = new Option(itemData.Text, itemData.Value);

                list.add(option);
            });
        });
    }

我需要做些什么特别的事吗? 我试图自己做这个,我想出了以下内容,但我得到的是“未捕获的SyntaxError:意外的令牌”。

(function ($) {
    clearSelect = function () {
        return this.each(function () {
            if (this.tagName == 'SELECT')
                this.options.length = 0;
        });
    };

    addItems = function (data) {
        return this.each(function () {
            var list = this;
            $.each(data, function (index, itemData) {
                var option = new Option(itemData.Text, itemData.Value);
                list.add(option);
            });
        });
    };
})(jQuery);

由于

1 个答案:

答案 0 :(得分:2)

您的初始方法应该有效...只需确保 jQuery本身后包含文件。 You can test it here

另一个选择是扩展$.fn,类似于第二次尝试,如下所示:

(function($) {
  $.fn.extend({
    clearSelect: function() {
      return this.each(function() {
        if (this.tagName == 'SELECT') this.options.length = 0;
      });
    },
    addItems: function(data) {
      return this.each(function() {
        var list = this;
        $.each(data, function(index, itemData) {
          var option = new Option(itemData.Text, itemData.Value);
          list.add(option);
        });
      });
    }
  });
})(jQuery);

You can test that version here