我有一个无序列表,每个列表项目背景在鼠标悬停在其上时都会改变颜色。如果鼠标不移动并且滚轮向下滚动,则光标会悬浮在不同的列表项上,但通过jQuery的悬停类不会被触发。为什么是这样?我该如何解决问题?使用鼠标滚轮滚动不会触发jQuery悬停或鼠标悬停
这是代码。
(function ($) {
Drupal.behaviors.jMapping = {
attach: function(context, settings) {
var jMap,
pointToMoveTo,
data,
bounds,
icon,
$el;
$('#map').height(200).jMapping({
category_icon_options: {
'default': {color: '#7CDF65'}
}
});
jMap = $('#map').data('jMapping');
bounds = jMap.getBounds();
$.each(jMap.gmarkers, function(id, marker){
google.maps.event.addListener(marker, 'mouseover', function() {
$('#nid-' + id).addClass('hover');
});
google.maps.event.addListener(marker, 'mouseout', function() {
$('#nid-' + id).removeClass('hover');
});
});
$("#map-side-bar li").mouseenter(function() {
$el = $(this);
data = $el.data('jmapping');
if (!$el.hasClass("hover")) {
$el.addClass("hover");
jMap.gmarkers[data.id].styleIcon.set("color", "#017DC3");
pointToMoveTo = $.jMapping.makeGLatLng(data.point);
jMap.map.panTo(pointToMoveTo);
}
}).mouseleave(function() {
$("#map-side-bar li").removeClass("hover");
jMap.gmarkers[data.id].styleIcon.set("color", "#7CDF65");
});
}
};
})(jQuery);
这个jQuery插件只是使用mousewheel事件。 document.getElemmentById('thing')。onmousewheel = yourFunc也会这样做。我只在Chrome中进行了测试 – 2011-11-16 01:13:26
该插件标准化了您将从不同浏览器/平台上的鼠标事件返回的增量。 – addedlovely 2011-11-16 13:15:01
如果您的目标是在项目滚动时调用悬停操作,则原始mousewheel事件最适合webkit。许多用户界面并不关心三角洲(facebook ticker,gmail离线) – 2011-11-20 20:32:55