Javascript 如何使输入字段可拖动

Javascript 如何使输入字段可拖动,javascript,jquery,html,jquery-ui,draggable,Javascript,Jquery,Html,Jquery Ui,Draggable,我有一个下拉/输入字段,但我想在其中放入一个可拖动的事件。当我第一次拖动它时,它会平稳地移动,但是当我开始编辑输入字段中的文本时,我似乎再也不能拖动它了。我一直在研究可拖动的方法,但运气不好 基本上,我有一个包装在下拉/输入字段中,其中附加了可拖动事件 <div class="draggable"> <select> <option> </select> <input> </div>

我有一个下拉/输入字段,但我想在其中放入一个可拖动的事件。当我第一次拖动它时,它会平稳地移动,但是当我开始编辑输入字段中的文本时,我似乎再也不能拖动它了。我一直在研究可拖动的方法,但运气不好

基本上,我有一个
包装在下拉/输入字段中,其中附加了可拖动事件

<div class="draggable">
    <select>
       <option>
    </select>
    <input>
</div>

是这样的。下面是具有下拉/输入字段的代码链接,但它仍然具有可拖动事件

编辑: 这是更新后的代码,但Dragable无法工作。我不知道为什么。

您需要分派事件,因为jQuery UI Dragable可以防止输入元素上的拖动行为。现在,要使输入元素仍然具有响应性,可以使用以下解决方法:


您需要分派事件,因为jQuery UI Dragable可以防止输入元素上的拖动行为。现在,要使输入元素仍然具有响应性,可以使用以下解决方法:


你确定你已经发布了相关的JSFIDLE吗?可拖动部分在哪里?我无法实现可拖动部分,因为我不知道如何实现。只需在左侧面板中包括jQuery UI,当然,在JS部分中包括相关代码。抱歉,回复太晚了,应该可以工作的拖拽下拉列表应该可以工作,但我似乎找不到一个解决方法。你确定你已经发布了相关的JSFIDLE吗?可拖动部分在哪里?我无法实现可拖动部分,因为我不知道如何实现。只需从左面板中包括jQuery UI,当然,在JS部分中包括相关代码。抱歉,回复太晚了,应该可以工作的可拖动下拉列表应该可以工作,但我似乎找不到解决方法。哇,代码不错。棘手的问题。哇,代码不错。棘手的问题。
$(".draggable").draggable({
    start: function( event, ui ) {
       $(this).data('preventBehaviour', true);
    }
});

$(".draggable :input").on('mousedown', function (e) {
    var mdown = document.createEvent("MouseEvents");
    mdown.initMouseEvent("mousedown", true, true, window, 0, e.screenX, e.screenY, e.clientX, e.clientY, true, false, false, true, 0, null);
    $(this).closest('.draggable')[0].dispatchEvent(mdown);
}).on('click', function(e){
    var $draggable = $(this).closest('.draggable');
    if($draggable.data("preventBehaviour")){
        e.preventDefault();
        $draggable.data("preventBehaviour", false)
    }
});