2012-12-13 9 views
0

첫 번째 jquery 플러그인을 작성하고 있습니다. hover 동작을 추가하려고 시도하지만 hover 응답이 즉시 호출됩니다. 내가 $('#one').help() 내 플러그인을 첨부호버 동작을 첨부하려고하는데 호버 동작이 즉시 호출됩니다.

(function($){ 
    var Help = function(element, options) { 
    this.$element = element; 
    this.options = $.extend({}, $.fn.help.defaults, options); 
    }; 

    Help.prototype.hover = function(name){ 
    alert(name); 
    }; 

    $.fn.help = function(option){ 
    return this.each(function() { 
     var $this = $(this); 
     var help = $this.data('help'); 
     var options = ""; 
     var data = $this.data('help-id'); 
     if(!help) { 
     $this.data('help', (help = new Help(this, options))); 
     } 
     $this.on('hover', help.hover(data)); 
    }); 
    }; 
})(jQuery); 

, 그러나 이것은 바로 가져가 함수를 호출 : 여기 내 플러그인입니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 도와 주셔서 감사합니다.

답변

5

당신은 함수를 on에 전달하지 않고 함수를 호출 한 결과입니다.

$this.on('hover', function(){help.hover(data)}); 
+0

퍼펙

$this.on('hover', help.hover(data)); 

를 교체합니다. 도와 주셔서 감사합니다. 그렇게되면 내가 대답을 수락합니다. (8 분) – jhamm