首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用滚动时的jQuery UI拖放问题

问使用滚动时的jQuery UI拖放问题
EN

Stack Overflow用户
提问于 2012-07-18 11:27:21
回答 2查看 3.6K关注 0票数 2

当你点击某些文本时,我有一个div弹出窗口。我希望它是可移动的,所以我使用了jQuery UI的draggable()功能,工作起来非常棒。但是,我遇到的问题是弹出窗口中的div。如果需要,我将显示一个数组中的信息,该数组的范围可以从0到几乎无穷大。因此,我使用overflow:auto将其转换为滚动框。但是,当我单击向上和向下箭头在该框中上下滚动时,它将开始可拖动功能。这是相当恼人的,并且理解为什么会发生这个问题。我正在寻找解决它的建议或以某种方式绕过它。

下面是一个显示问题的jsfiddle:http://jsfiddle.net/BnTPG/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-18 11:46:10

您可以使用handle选项。看一下(我修改了你的小提琴)。在我的示例中,我将title设置为draggable的句柄,并使用了一些ids,而不是像您所做的那样使用类。

http://jsfiddle.net/BnTPG/2/

我认为你有这个问题是因为你使用了相对和绝对定位(这只是一个猜测,我没有测试过这个)。

票数 0
EN

Stack Overflow用户

发布于 2013-09-11 23:34:55

对于我来说,我真的更喜欢将所有弹出窗口拖到我想要的地方。

如果你想解决你的问题,你必须添加一个DIV包住滚动的div,因为在Firefox中,我认为滚动条是指向可拖动的父div,而不是只能滚动的子div的链接。

代码语言:javascript
复制
                $('body').on("mousedown", ".draggable", function(e) {

                    // Impossible to drag these LIEN, INPUT, TEXTAREA, SELECT
                    var clicked = $(e.target).get(0).tagName;
                    if (clicked == 'A' || clicked == 'INPUT' || clicked == 'TEXTAREA' || clicked == 'SELECT') {
                            return true;
                    }
                    if ($(e.target).parents().hasClass('selectable')) {
                            return true;
                    }

                    // Stop clic action
                    if (e && e.preventDefault) {
                            e.preventDefault();
                    } else {
                            window.event.returnValue = false;
                    }

                    ... etc ...


<div id="debuger" class="draggable" style="overflow: hidden;">
     <div class="selectable">
          <div id="text"> Scrollable text </div>
</div></div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11533864

复制
相关文章

相似问题

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