2010-10-15 5 views
0

У меня есть функция JQuery (урезанная только для примера):Вызов функции JQuery в функции

(function($) { 

    $.fn.Lightbox = function(options) { 

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

     function initialize() { 
      $('#lightbox').show(); 
      return false; 
     }; 

     function close() { 
      $('#lightbox').hide(); 
     }; 

     return this.click(initialize); 
    }; 

})(jQuery); 

Затем я использую ....

$('a.image').Lightbox(); 

, чтобы запустить его. Я хочу, чтобы можно было вызвать функцию close() отдельно, например.

$.Lightbox.close(); 

Как я могу достичь этого в своем коде?

ответ

5

Вы можете добавить метод для этого, например:

(function($) { 
    $.fn.Lightbox = function(options) { 
     var opts = $.extend(defaults, options); 

     function initialize() { 
      $('#lightbox').show(); 
      return false; 
     }; 

     function close() { 
      $('#lightbox').hide(); 
     }; 
     return this.click(initialize); 
    };  
    $.Lightbox = { 
     close: function() { 
      $('#lightbox').hide(); 
     } 
    }; 
})(jQuery); 
+0

Спасибо, есть ли способ я могу получить его, чтобы вызвать функцию оригинала близко() без повторения кода? – fire

+0

@fire - я бы сделал обратное, привязывая его к главному: 'function close() {$ .Lightbox.close(); } '... потому что нет ничего, что зависит от этого, может также упростить его. –

Смежные вопросы