我正在尝试附加悬停操作,但是立即调用悬停操作

时间:2012-12-13 20:46:42

标签: javascript jquery jquery-plugins jquery-events

我正在编写我的第一个jQuery插件。我正在尝试添加悬停操作,但是立即调用悬停响应。这是我的插件:

(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);

我将我的插件附加到$('#one').help(),但这会立即调用悬停功能。我究竟做错了什么?

1 个答案:

答案 0 :(得分:5)

您没有将函数传递给on,而是函数调用的结果。

替换

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

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