2008-11-25 120 views
5

我目前正在研究一个jQuery插件,我想知道是否有可能让插件监听事件而不是事件触发。jQuery插件:处理事件

因此,不是这样的:

$('#element_id').mouseover(function() { 
    $(this).plugin(); 
}); 

$('#element_id').mouseout(function() { 
    $(this).pluginHide(); 
}); 

我想尝试做这样的事情:

$('#element_id').plugin(????, ????); 

而且具有某种参考元素和事件替换的是应该触发它显示或隐藏。我仍然对jQuery感到厌烦,所以请耐心等待,如果解决方案很明显。

回答

8

经过试验了一下,看起来我正在寻找内置的“bind()”函数。解决我原来的问题:

jQuery.fn.plugin = function(show, hide) { 
    this.bind(show, function() { 
     // Do something to show. 
    }; 

    this.bind(hide, function() { 
     // Do something to hide. 
    }; 
}; 
+6

不要使用`$(this)`。使用`this` – Aliostad 2012-01-04 10:05:08