Размещение пары пользовательских функций Jquery во внешнем скрипте - PullRequest
1 голос
/ 06 октября 2010

У меня есть следующие две функции, и мне нужна помощь в перемещении их во внешний файл.

 $.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);
            });
        });
    }

Есть ли что-то особенное, что мне нужно сделать?Я попытался сделать это самостоятельно и придумал следующее, но я получаю «Uncaught 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 Ответ

2 голосов
/ 06 октября 2010

Ваш первоначальный подход должен работать ... просто убедитесь, что файл включен после самого jQuery. Вы можете проверить это здесь .

Другой вариант - расширить $.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);

Вы можете проверитьэта версия здесь .

...