Могу ли я использовать имя функции в параметрах моего плагина jquery? - PullRequest
0 голосов
/ 12 июня 2009

Я создаю плагин для проверки формы для jQuery и хотел бы, чтобы он вызывал функцию после успешной проверки формы. Плагин будет иметь функцию обратного вызова по умолчанию, но я бы хотел изменить это через параметр options. К сожалению, то, что у меня есть (ниже), не работает. Есть идеи?

(function($){
    $.fn.extend({
        validify : function(options) {
            var defaults = {
                callback: "callbackFunc",
            };

            var options = $.extend(defaults,options);

            return this.each(function(){
                //validation code here
                //if valid call the function
                if(errors==0){
                    options.callback;
                }


            function callBackFunc(){
                // the default callback function
            }

            ...

Ответы [ 2 ]

6 голосов
/ 12 июня 2009

Удалите цитаты, и вы золотой.

Это передаст ссылку на функцию. Вы можете позвонить, набрав options.callback();

Вам также необходимо объявить функцию, прежде чем передать ссылку. Вы можете обойти это, сделав это вместо:

callback: function() { callbackFunc(); }
1 голос
/ 12 июня 2009

Передайте саму функцию, а не ее имя (т.е. удалите кавычки):

(function($){
    function callBackFunc(){
      // the default callback function
    }

    $.fn.extend({
        validify : function(options) {
            var defaults = {
                callback: callbackFunc // IMPORTANT: remove quotes AND trailing comma
            };

            var options = $.extend(defaults,options);

            return this.each(function(){
                //validation code here
                //if valid call the function
                if(errors==0){
                    options.callback();  // note parentheses
                }

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