我绝对必须调整这一行以使用旧的jquery 1.51
运行this.on({'mouseenter.hoverIntent':handleHover,'mouseleave.hoverIntent':handleHover}, cfg.selector)
我无法理解语法。我知道burly括号内的部分是事件,但它是什么意思呢?
'mouseenter.hoverIntent':handleHover
这个?
'mouseleave.hoverIntent':handleHover
代码是从here
获取的脚本的最后一行我正在做这个backport,因为.on仅在1.7之后可用,而且我使用的是1.5.1,我无法升级,这绝对是令人伤心的事情。
adminbar.find(' li.menupop')hoverIntent({。 结束:function(e){ if(disableHoverIntent) 返回;
$(this).addClass('hover');
},
out: function(e){
if ( disableHoverIntent )
return;
$(this).removeClass('hover');
},
timeout: 180,
sensitivity: 7,
interval: 100
});
我只是想用
替换return this.bind({'mouseenter.hoverIntent':handleHover,'mouseleave.hoverIntent':handleHover}, cfg.selector);
我现在没有错误,但是,简单来说,它不起作用,鼠标悬停时菜单打开不再触发
**这个代码是如何使用的? **
adminbar.find('li.menupop').hoverIntent({
over: function(e){
if ( disableHoverIntent )
return;
$(this).addClass('hover');
},
out: function(e){
if ( disableHoverIntent )
return;
$(this).removeClass('hover');
},
timeout: 180,
sensitivity: 7,
interval: 100
});
重要说明2
尝试转储cfg.selector
给undefined
。所以我实际上并不知道如何正确地将此扩展转储到所选元素。
答案 0 :(得分:4)
修改,更新
关注并使用@ a-wolff提供的jsfiddle http://jsfiddle.net/h29oh09t/1/,最低限度修改
(function ($) {
$.fn.hoverIntent = function (handlerIn, handlerOut, selector, cfg) {
// default configuration values
var cfg = cfg || {
interval: 100,
sensitivity: 6,
timeout: 0
};
试
var adminbar = $("ul");
var disableHoverIntent = false;
adminbar.find('li.menupop').hoverIntent({
over: function (e) {
if (disableHoverIntent) return;
$(this).addClass('hover');
},
out: function (e) {
if (disableHoverIntent) return;
$(this).removeClass('hover');
}
}, null, {timeout: 180,
sensitivity: 7,
interval: 100});
但这是什么意思?
'mouseenter.hoverIntent':handleHover
的
.hoverIntent
部分
mouseenter.hoverIntent
似乎是namespace
答案 1 :(得分:0)
用bind()
替换on()
应该为jQuery 1.5做你需要的。传入的对象由表示事件类型的键组成,该对象的值表示事件处理程序。因此,在'mouseenter.hoverIntent':handleHover
的情况下,事件类型为mouseenter.hoverIntent
,这是一个在代码中的其他位置触发的自定义事件。触发该事件后,将调用handleHover
函数。