我有 4 个DIV
希望scroll
在您滚动其中一个 div 时触发一个事件。这是下面的代码。
$('#div1, #div2, #div3, #div4').scroll(function() {
alert('...');
});
在 Firefox/Chrome 中,它运行得很快;但是,在 Internet Explorer 中,它运行得非常慢,以至于它实际上阻止了我滚动 div。
我正在使用最新版本的 JQuery (v.1.4.1)。
问题:有没有更有效的方式来运行上面的代码?如果是这样,怎么做?
更新:既然有人问了,我已经在我的整个代码下面包含了:
$('#div1, #div2, #div3, #div4').scroll(function() {
/* find the closest (hlisting) home listing to the middle of the scrollwindow */
var scrollElemPos = activeHomeDiv.offset();
var newHighlightDiv = $(document.elementFromPoint(
scrollElemPos.left + activeHomeDiv.width() / 2,
scrollElemPos.top + activeHomeDiv.height() / 2)
).closest('.hlisting');
if(newHighlightDiv.is(".HighlightRow")) return;
$('.HighlightRow').removeClass("HighlightRow");
newHighlightDiv.addClass('HighlightRow');
/* change the map marker icon to denote the currently focused on home */
var activeHomeID = newHighlightDiv.attr("id");
if (activeHomeMarkerID) {
// unset the old active house marker to a normal icon
map.markers[activeHomeMarkerID].setIcon('http://example.com/images/house-icon.png');
}
activeHomeMarkerID = activeHomeID.substring(4); // set the new active marker id
map.markers[activeHomeMarkerID].setIcon('http://example.com/images/house-icon-active.png');
});
更新 2:
所以我在下面实现了计时器选项,在 IE 中,它仍然很慢。还有其他想法吗?