jQuery.fn.extend, не имеет метода с MVC3 - PullRequest
2 голосов
/ 06 января 2012

Я хочу зарегистрировать функцию в моем представлении, используя jQuery.fn.extend. Поэтому я определил это в файле _Layoyt.cshtml в моем приложении Asp MVC3. следующий код для этого.

<script type="text/javascript">
    $.fn.extend({
            tagBox :function(options) { }
        }); 
</script>

На мой взгляд, я использую следующий код для вызова метода

$(document).ready(function () { 
       $('.tags').tagBox({ maxTagCount: 5, initialTags: [] });
   });

но когда я проверяю страницу с хромом я вижу ошибку

Uncaught TypeError: Object [object Object] не имеет метода tagBox d.extend._Deferred.f.resolveWithjquery-1.5.1.min.js: 19 d.extend.readyjquery-1.5.1.min.js: 19 c.addEventListener.A

Что я здесь не так делаю?

Ответы [ 2 ]

1 голос
/ 06 января 2012

В дополнение к отличному ответу locrizak, если ваш код все еще не работает, в каком порядке эти сценарии появляются в отображаемом HTML?

Если $.fn.extend( объявлено до загрузки библиотеки jquery,она не будет работать.Кроме того, если вы выполните $('.tags').tagBox({ maxTagCount: 5, initialTags: [] }); в своем представлении до объявления расширения функции, оно не будет работать.Сценарии должны быть упорядочены следующим образом:

  1. Загрузить библиотеку jQuery
  2. Объявить расширение функции
  3. Использовать / вызывать расширение функции

Если это не помогает, попробуйте опубликовать HTML-код, отображаемый в браузере, чтобы мы могли проверить и помочь вам выяснить, что происходит не так.

1 голос
/ 06 января 2012

Я думаю, вы запутались, для чего используются $.fn.extend или просто $.extend.Они предназначены для переопределения значений одного объекта другим и обеспечения того, чтобы для этого свойства было определено значение.Я думаю, что вы ищете плагин jquery.Это оболочка из одного.

(function($){

    var _defaults = {
        your:"defaults",
        you:"Want to extend"
    };

    $.fn.tagBox = function(options){

        var _opts = $.extend({}, _defaults, options);

        return this.each(function(){

        });
    };  
})(jQuery);

Эта статья научила меня многим основам, когда я впервые начал учиться их писать, и я часто возвращаюсь к примеру в качествеоснова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...