Пользовательское событие для пользовательского плагина JQuery - PullRequest
0 голосов
/ 14 октября 2010

Я сделал этот плагин jQuery под названием съемный , когда вы нажимаете кнопку объектов, он скользит вверх и должен вызывать пользовательское событие, например onDone .

Вот что я сделал (Формат кодирования основан на jQuery's http://docs.jquery.com/Plugins/Authoring):

init: function(){
    return this.each(function(){
        $('a', this).click(function(){
            $(this).parent().slideUp(function(){

                    // Somehow trigger the onDone method

            })
        });
    })
},
onDone: function(){
    // Default action
},

и это то, что я сделал, когда вызывал плагин

   $('li').removable({
        onDone: function(){
          // Overwrite default action
        },
    })

Как это можно сделать?

Ответы [ 2 ]

0 голосов
/ 30 января 2013

Попробуйте это.

(function($){
jQuery.fn.extend({
    removable: function(options) {
        var defaults = {  
             onDone: function(){alert('default action');}
        };  
        var options = $.extend(defaults, options);  
        return this.each(function() {   
            $('a', this).click(function(){
                 $(this).parent().slideUp(function(){
                 options.onDone.call();
            });
        });
});
    }
});
  })(jQuery);

  $('li').removable({
    onDone: function(){
      alert('Overwrite default action');
    },
})
0 голосов
/ 14 октября 2010

Если все, что вам нужно, это вызвать его в конце анимации, просто передайте его в качестве второго аргумента для slideUp или даже просто вызовите его с $ (foo) .MyPlugin.onDone () внутри функции обратного вызова.

в противном случае посмотрите на триггер и bind jQuery - вы можете использовать любую строку, которую хотите для этих типов событий, чтобы вы могли инициировать и связывать событие MyPluginDone

РЕДАКТИРОВАТЬ: основываясь на комментариях, вы хотите что-то более простое -

Как говорится в статье, которую вы цитировали, лучший способ обеспечить переопределяемые значения по умолчанию для опций состоит в том, чтобы ваш плагин принимал объект options, затемчтобы получить комбинированные значения по умолчанию + переопределения, которые вы делаете:

var combinedOpts = $.extend({},defaults,overrides);

и получите оттуда все значения для использования ...

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