Jquery-ui中的Draggable Method不使用创建的元素

时间:2017-04-18 16:49:14

标签: jquery html jquery-ui draggable

我有一个图像,当我点击它时,它应该创建一个div并将其放在一个容器(父div)中并使其成为可拖动的。

我包含了jquery-ui和jquery的问题;但仍然可拖动的方法不起作用,它成功地在容器中添加了div,但它不可拖动。

这里是jquery和平的代码:

var $homy;
var texty;
function perform(){
$homy=$("<div class='cabine'></div>");
texty=$("<textarea class='sub'></textarea>");
$homy.append(texty);
$homy.draggable();
$homy.appendTo("#container");
}

这是html部分:

<div>
<img class="accept" src="done.png" onclick="perform()" width="40" height="40">
</div>

有什么问题吗?

2 个答案:

答案 0 :(得分:0)

可拖动的div就在那里,但是textarea不能被拖动,因为你输入它/可以重新调整它的大小。只需使它小于你的内部div并给它一些带边框的定义。

JSFiddle Demo

#container{
  border-style: solid;
  width: 400px;
  height: 200px;
}
.cabine{
  border-style: solid;
  width: 200px;
  height: 100px;
  position:relative;
  margin-left:50px;
  margin-top:20px;
}
.sub{
  width: 100px;
  height: 50px;
  text-align: center;
  margin-left:50px;
  margin-top:20px;
  resize: none;
}

要将内部div保持在外部,请将.draggable()更改为

$homy.draggable({ containment: "parent" });

答案 1 :(得分:0)

如上所述,我在HTML中看不到#container。我建议如下:

$(function() {
  var $homy, texty;
  function perform(e) {
    $homy = $("<div>", {
      class: "cabine",
      title: "Enter Caption"
    });
    texty = $("<textarea>", {
      class: "sub"
    });
    $(e.target).parent().append($homy);
    $homy.html(texty).dialog();
  }
  $("img.accept").click(perform);
});

工作示例:https://jsfiddle.net/Twisty/zsdnsskg/

这会创建divtextarea,在img之后追加它们,然后启动.dialog()

希望有所帮助。