我在IE8中有一个奇怪的问题。我在一个区域有一堆div。每个div都具有相同的结构。这是基本结构。
<div class="brandImage">
<div style="display:none;">
<a><img/></a>
<div><a href="/different/page.aspx"><span>See More</span></a></div>
</div>
</div>
每个brandImage
div都有一个on hover监听器,它会给内部div一个display:block
陶醉图像并允许用户点击。
所有这些“图块”都包含在具有设置高度的div中,并且可以使用jquery.mCustomScrollbar插件滚动。
它适用于折叠上方的所有瓷砖,但是,当您开始向下滚动折叠时,如果您单击其中一个图块,mousedown
将导致容器向上滚动。如果容器不必滚动很远,或者你足够快地释放鼠标按钮以完成点击它将起作用。
我的问题是导致mousedown
事件向上滚动的原因是什么?
答案 0 :(得分:0)
插件默认滚动焦点。在focusin
上调用的函数。这是滚动容器。这是插件中的代码。
/*scrolling on element focus (e.g. via TAB key)*/
if($this.data("autoScrollOnFocus")){
if(!$this.data("bindEvent_focusin")){
mCustomScrollBox.bind("focusin",function(){
mCustomScrollBox.scrollTop(0).scrollLeft(0);
var focusedElem=$(document.activeElement);
if(focusedElem.is("input,textarea,select,button,a[tabindex],area,object")){
var mCSB_containerPos=mCSB_container.position().top,
focusedElemPos=focusedElem.position().top,
visibleLimit=mCustomScrollBox.height()-focusedElem.outerHeight();
if($this.data("horizontalScroll")){
mCSB_containerPos=mCSB_container.position().left;
focusedElemPos=focusedElem.position().left;
visibleLimit=mCustomScrollBox.width()-focusedElem.outerWidth();
}
if(mCSB_containerPos+focusedElemPos<0 || mCSB_containerPos+focusedElemPos>visibleLimit){
$this.mCustomScrollbar("scrollTo",focusedElemPos,{trigger:"internal"});
}
}
});
$this.data({"bindEvent_focusin":true});
}
}
初始化插件时,我将autoScrollOnFocus
设置为false,没有问题。