2017-04-18 28 views
1

我有一個圖像,當我點擊它,它應該創建一個div並將其放置在一個容器(父div),並使其可拖動。jquery-ui中的Draggable方法不與創建的元素

問題,我已經包括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> 

是有什麼錯?

+0

我在HTML中看不到#容器。這個元素在哪裏?我懷疑創建的項目不能被追加,因爲目標不存在。 – Twisty

回答

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" }); 
+0

非常感謝你的男人! –

+0

沒有問題。樂意效勞。 :-) – Ethilium

0

如前所述,我沒有看到#container在你的HTML。我建議如下:

$(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()

希望有所幫助。

+0

如果您想進一步研究,可以:https://jsfiddle.net/Twisty/zsdnsskg/3/ – Twisty

+0

非常感謝您付出的努力! –

相關問題