【问题标题】:How do I drag a div if someone clicks on a input within the `draggable` div?如果有人单击“可拖动” div 中的输入,我如何拖动 div?
【发布时间】:2014-02-16 20:39:21
【问题描述】:

我有以下 html 和 js(查看下面的 jsfiddle)。

我已经准备好将 dom 上的 jquery 拖动事件绑定到 .control-group

如果用户单击并拖动除输入以外的任何位置(在 div 内),他们可以按预期拖动 div,但如果他们在输入中单击,它会选择文本输入的输入,(并且不允许我们拖动它)。

我希望能够让用户点击 div 中的任何内容,并且应该能够拖动整个 div。

<div class="control-group">
    <label class="control-label" for="textInput">Text Input</label>
    <div class="controls">
        <!-- If someone clicks on this input, the whole div should still be draggable -->
        <!-- Its ok if the input is not usable, thats the point!, Its just for show -->
        <input id="textInput" name="textInput" type="text" placeholder="placeholder"/>
        <p class="help-block">you have an error!</p>
    </div>
</div>

jQuery(Dom 就绪):

$('.control-group').draggable();

所以我正在寻找“冒泡”到.control-group div 的事件。 (如果我猜对了?!)

View the JSFiddle here:http://jsfiddle.net/8stpE/

【问题讨论】:

    标签: javascript jquery jquery-ui drag-and-drop


    【解决方案1】:

    这样写:

    $('.control-group').draggable( { cancel : " " } );
    

    请记住,draggable 需要很多参数,您可以查找它们here

    【讨论】:

    • 这使得文本输入可以聚焦,他想要相反的他想要它所以它不会变得聚焦,并且即使您从输入框中单击并拖动也允许拖动
    • 这符合我的要求!,输入永远不会获得焦点,您可以在点击时拖动整个 div(甚至在输入上),我只需要添加一个 cursor:pointer; 来实现什么我想要!...谢谢!我会投票,但我需要 15 次代表! +1
    • 看起来都一样? (textInput 或 ''(空))
    • 这只是因为“取消”选项适用于标签类型,而不适用于 ID。使用空引号更容易混淆。
    • +1 解释,我会更仔细地阅读文档,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 2021-05-11
    • 2014-07-25
    相关资源
    最近更新 更多