2013-06-06 5 views
0

я использую JQuery Boilerplate: http://jqueryboilerplate.com/JQuery функции шаблонный вызов

и теперь у меня есть проблемы, чтобы вызвать функцию в функции ..

я не могу назвать «openOverlay» в «clickEvents», но Я могу вызвать «openOverlay» в «init».

вот фрагмент:

 
    Plugin.prototype = { 

     init: function() { 
      var $me = $(this.element); 

      this.clickEvents($me); 
     }, 

     clickEvents: function($el, func) { 
      $el.on('click', function() { 
       var $me = $(this); 
       var overlayName = $me.data('overlay'); 
       this.openOverlay(overlayName); 
      }); 
     }, 

     openOverlay: function(overlayName) { 

      var $overlayContainer = $(defaults.$overlayContainer); 
      var $overlay = $overlayContainer.find('[data-overlay="' + overlayName + '"]'); 

      $overlayContainer.fadeIn(500); 
      $overlay.delay(500).fadeIn(500); 
     } 
    }; 

ответ

0

проблема заключается в том, что по щелчку функция переопределяет "это"

попробовать:

var self=this; 
$el.on('click', function() { 
    var $me = $(this); 
    var overlayName = $me.data('overlay'); 
    self.openOverlay(overlayName); 
}); 
Смежные вопросы