jquery - 如何使用 jQuery 使文本框可拖动?

标签 jquery textbox dialog draggable resizable

有人有使用 jQuery 使 html 输入文本框可拖动的经验吗?

我尝试将文本框包裹在 div 内,并且可以使其大小可调整,但不可拖动。 div 和文本框放置在标准 jQuery UI 对话框上。实际上,我需要对话框内的可拖动和可调整大小的 html 输入文本框。

代码如下:

<script type="text/javascript" language="javascript">
    $(document).ready(function() {
        $("#btnShow").click(function(e) {
            $('#dialog').dialog("open");
        });
        $('#dialog').dialog({
            title: "Sample dialog",
            resizable: false,
            autoOpen: false,
            width: 400,
            height: 300,
            buttons: [{ text: "OK", click: function() { /* do something */ } },
                { text: "Cancel", click: function() { $(this).dialog("close") } }]
        });
        $('#divText1').draggable({
            containment: "parent",
            cursor: "move"
        }).resizable({
            containment: "parent",
            handles: "e, w"
        });
    });
</script>

    <input id="btnShow" type="button" value="Show" />

    <div id="dialog" title="Dialog Box" style="border: solid 1px black; margin: 0px 0px 0px 0px; padding: 5px 0px 0px 5x;">
        <div id="divText1" style="width: 200px; height: 30px;">
            <input type="text" style="width: 98%;" value="Hello world!" /><br /><br />
        </div>
    </div>

提前谢谢您。

戈兰

最佳答案

默认情况下,input、textarea、button、select、option 类型的元素禁用拖动。您可以使用 cancel 更改/清除它选项。

工作代码:

$("#btnShow").click(function(e) {
  $('#dialog').dialog("open");
});
$('#dialog').dialog({
  title: "Sample dialog",
  resizable: false,
  autoOpen: false,
  width: 400,
  height: 300,
  buttons: [{
      text: "OK",
      click: function() { /* do something */ }
    },
    {
      text: "Cancel",
      click: function() {
        $(this).dialog("close")
      }
    }
  ]
});
$('#divText1').draggable({
  cancel: null,
  containment: "parent",
  cursor: "move"
}).resizable({
  containment: "parent",
  handles: "e, w"
});
<link href="https://code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<input id="btnShow" type="button" value="Show" />

<div id="dialog" title="Dialog Box" style="border: solid 1px black; margin: 0px 0px 0px 0px; padding: 5px 0px 0px 5x;">
  <div id="divText1" style="width: 200px; height: 30px;">
    <input type="text" style="width: 98%;" value="Hello world!" /><br /><br />
  </div>
</div>

关于jquery - 如何使用 jQuery 使文本框可拖动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10719341/

相关文章:

javascript - .js.erb VS .js

javascript - 使用javascript控制文本框

python - 如何在 tkinter、Python 3.2.5 的文本框中打印并让用户输入?

c++ - 无法访问Qt5中对话框的成员

jquery - jQuery.ajax 在 jQuery 源代码中的哪里定义?

javascript - 使用 Javascript DOM 删除 HTML 中的无序列表

javascript - 如何自动找出我的网站上哪些 jQuery 选择器运行缓慢?有这个插件吗?

C# WPF MVVM TextBox 值不改变

java - 在对话窗体中输入文本

javascript - 使用 Ajax 生成的链接启动 JQuery 对话框