首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌入在手风琴中的jQueryUI滑翔机在Chrome浏览器中出错

问嵌入在手风琴中的jQueryUI滑翔机在Chrome浏览器中出错
EN

Stack Overflow用户
提问于 2014-07-18 16:24:18
回答 1查看 322关注 0票数 0

我需要添加滑块控件到手风琴标题。

我使用手风琴和滑块的jQuery UI演示,成功地将两者混合在一起。

弹琴页。

问题是在未打开的手风琴上移动滑块。由于滑块控件大部分时间沿滑块抓取,用户“鼠标”离开滑块按钮。这在Firefox29.0.1中按计划工作,但是在Chrome35.0中,远离滑块按钮的"mouseup“会导致手风琴打开,这是不需要的。

紧闭手风琴。移动滑块按钮。鼠标,光标在滑块按钮上。

->滑行手风琴不打开PASS

紧闭手风琴。移动滑块按钮。鼠标与光标关闭滑块按钮,但仍按滑块规则。

->滑翔机移动手风琴打开FAIL

关闭手风琴移动滑块鼠标,光标离开手风琴

->滑行手风琴不打开PASS

因为它适用于火狐,但不适用于Chrome (和IE),我认为这可能是jQuery/jQuery的错误,我已经学到了很多关于这个问题的知识,我可能遗漏了一些显而易见的东西,我可以用一个快速的方法来解决这个问题吗?或者,这是jQuery如何在浏览器特性上发表论文的一个漏洞。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-21 14:00:12

您可以暂时禁用手风琴的另一个选项卡的激活。然而,这种方法很粗糙,因为它需要一个计时器,并且创造了一个很小的比赛条件的机会。

首先,创建一个您的手风琴将评估的标志:

代码语言:javascript
复制
var tempDisable = false;

修改手风琴,使其在设置标志时不会激活其他选项卡:

代码语言:javascript
复制
$("#accordion").accordion({
    beforeActivate: function() {
        if (tempDisable) {
            return false;
        }
    }
});

最后,在启动/停止拖动滑块时,设置/取消标志:

代码语言:javascript
复制
    [...]
    start: function() {
        tempDisable = true;
    },
    stop: function() {
        setTimeout(function() {
            tempDisable = false;
        }, 10);
    }
    [...]

我已经用完全工作的代码更新了你的JSFiddle。如上所述,这并不理想,因为(由于滑块的stop事件将发生在面板的beforeActivate之前),需要超时。我已经将它设置为10 it,这应该是高负载CPU和快速点击用户之间的一个很好的平衡。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24829751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档