我写了一个简单的工具提示功能,可以看到here。
事情是,在.hover()
设置的两个处理函数中,我需要访问$(this)
和其他2个基于它的变量。为了做到做到这一点,我声明相同的3个变量在这两个处理程序:
$('a').hover(
function() {
var $this = $(this);
var link_offset = $this.offset();
var link_tooltip = $this.data('tooltip');
// Rest of the code
},
function() {
var $this = $(this);
var link_offset = $this.offset();
var link_tooltip = $this.data('tooltip');
// Rest of the code
}
);
DRY原则应得到尊重,所以我的问题是:通过设置为相同的变量是否有其他更聪明的/不太脏的方式这两个函数在.hover()
?
有意思的是,变量不能是全局变量(而且全局变量也是邪恶的)。
任何想法如何实现这与jQuery或纯JS?
如果你真的必须,你可以指定'的mouseenter()'和'鼠标离开()直接'事件处理程序和路由通过设置这些值的自定义函数调用。但它真的需要吗? – Kami 2014-09-04 21:55:23