输入文本字段可拖动/可调整大小不起作用

时间:2018-06-21 16:39:25

标签: jquery jquery-ui

In this plunk我有一个输入字段类型的文本,其中jQuery可调整大小/可拖动。有两个问题。首先,可拖动不起作用。其次,即使我指定了“全部”,可调整大小也只能使用“东南”手柄。 Hox来解决这个问题?

HMTL

<input type="text" class="field" />

JavaScript

$( document ).ready(function() {

  $(".field").draggable({  });

  $(".field").resizable({ 
    handles: "all"
  });

});

1 个答案:

答案 0 :(得分:2)

将Draggable分配给文本字段是不好的。浏览器预期会发生单击事件以输入光标,因此不会轻易放弃控制。

我建议如下:

$(function() {
  $(".field-wrapper").draggable({
      handle: ".handle"
    })
    .resizable({
      handles: "all",
      resize: function(e, ui) {
        var s = ui.size;
        $(".field", this).width(s.width - 40).height(s.height);
        $(".handle", this).height(Math.round(s.height / 2) + 20).css("margin-top", (Math.round(s.height / 2) - 20) + "px");
      }
    });
});
.field-wrapper {
  width: 245px;
  border: 1px inset #ccc;
  border-radius: 6px;
  padding: 0;
}

.field-wrapper .handle {
  display: inline-block;
  cursor: move;
}

.field-wrapper .field {
  border: 0;
  padding: 0;
  padding-left: .5em;
  margin: -1px 0;
  border-left: 1px solid #ccc;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div class="field-wrapper">
  <span class="handle ui-icon ui-icon-grip-dotted-vertical"></span>
  <input type="text" class="field" />
</div>