0

我使用 jQuery 样板:http: //jqueryboilerplate.com/

现在我在函数中调用函数时遇到问题..

我不能在“clickEvents”中调用“openOverlay”,但我可以在“init”中调用“openOverlay”。

这是一个片段:

    Plugin.prototype = {

        初始化:函数(){
            var $me = $(this.element);

            this.clickEvents($me);
        },

        点击事件:函数($el,函数){
            $el.on('点击', function() {
                var $我 = $(这个);
                var overlayName = $me.data('overlay');
                this.openOverlay(overlayName);
            });
        },

        开放覆盖:功能(覆盖名称){

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

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

1 回答 1

0

问题是点击功能会覆盖“this”

尝试:

var self=this; 
$el.on('click', function() { 
    var $me = $(this); 
    var overlayName = $me.data('overlay'); 
    self.openOverlay(overlayName); 
}); 
于 2013-06-06T11:25:18.663 回答