我需要添加滑块控件到手风琴标题。
我使用手风琴和滑块的jQuery UI演示,成功地将两者混合在一起。
弹琴页。
问题是在未打开的手风琴上移动滑块。由于滑块控件大部分时间沿滑块抓取,用户“鼠标”离开滑块按钮。这在Firefox29.0.1中按计划工作,但是在Chrome35.0中,远离滑块按钮的"mouseup“会导致手风琴打开,这是不需要的。
紧闭手风琴。移动滑块按钮。鼠标,光标在滑块按钮上。
->滑行手风琴不打开PASS
紧闭手风琴。移动滑块按钮。鼠标与光标关闭滑块按钮,但仍按滑块规则。
->滑翔机移动手风琴打开FAIL
关闭手风琴移动滑块鼠标,光标离开手风琴
->滑行手风琴不打开PASS
因为它适用于火狐,但不适用于Chrome (和IE),我认为这可能是jQuery/jQuery的错误,我已经学到了很多关于这个问题的知识,我可能遗漏了一些显而易见的东西,我可以用一个快速的方法来解决这个问题吗?或者,这是jQuery如何在浏览器特性上发表论文的一个漏洞。
发布于 2014-07-21 14:00:12
您可以暂时禁用手风琴的另一个选项卡的激活。然而,这种方法很粗糙,因为它需要一个计时器,并且创造了一个很小的比赛条件的机会。
首先,创建一个您的手风琴将评估的标志:
var tempDisable = false;修改手风琴,使其在设置标志时不会激活其他选项卡:
$("#accordion").accordion({
beforeActivate: function() {
if (tempDisable) {
return false;
}
}
});最后,在启动/停止拖动滑块时,设置/取消标志:
[...]
start: function() {
tempDisable = true;
},
stop: function() {
setTimeout(function() {
tempDisable = false;
}, 10);
}
[...]我已经用完全工作的代码更新了你的JSFiddle。如上所述,这并不理想,因为(由于滑块的stop事件将发生在面板的beforeActivate之前),需要超时。我已经将它设置为10 it,这应该是高负载CPU和快速点击用户之间的一个很好的平衡。
https://stackoverflow.com/questions/24829751
复制相似问题