私の場合、いくつかのdivタグとimgタグがあります。ドラッグ可能でサイズ変更可能な操作をdiv要素のみに適用しています。
機能の1つに、選択した要素を動的に削除する「要素の削除」機能があります。すべてが機能します。delete関数の呼び出し後、サイズ変更とドラッグが再び機能するように、イベントバインディングを再度実行しています。ドラッグ可能は正常に機能しますが、サイズ変更は機能しません。
resizable( "destroy")。resizable()を呼び出すなど、多くの組み合わせを試しましたが、何も機能しません。domから生成された実行時のhtmlは少し奇妙に見えます。
画像を削除し、dragClassdivがページに存在する場合に問題が発生します。その場合、dragClass divは、サイズ変更可能になるように機能しなくなります。plsはこの問題を修正するためのいくつかのアイデアを提案します。
これがjsFiddleデモリンクです。
次に例を示します。-
<div id="ParentDIV" style="margin-left:200px; width:800px; height:500px; background:lightgray;">
<div class="dragClass"><p>Drag me around!</p></div>
<br /><br />
<img class="dragImgClass" src="logo3.JPG" />
<br /><br />
<img class="dragImgClass" src="logo4.JPG" />
</div>
<br /><br />
<input id="Btn4" type="button" onclick="deleteObj();" value="Remove Element" />
js:-
$(function () {
BindEvtHandlers();
}); //End of DOM Ready
function BindEvtHandlers() {
$(".dragImgClass").draggable({ delay: 100, containment: "#ParentDIV", scroll: false })
.on("click", selectAction);
$(".dragClass").draggable({ delay: 100, containment: "#ParentDIV", scroll: false })
.resizable()
.on("dblclick", editAction)
.on("click", selectAction)
.on("blur", "textarea", blurAction);
}
function selectAction() {
var $this = $(this); //get current obj.
if ($this.get(0).tagName == "IMG")
$('body').data('CBO', $this.attr('src'));
else
$('body').data('CBO', $this.find('p').html());
$('body').data('selObj', $this);
$this.fadeTo('slow', 0.3);
}
function deleteObj() {
var $selObj = $('body').data('selObj');
alert($selObj.outerHtml());
var cont = $('#ParentDIV').html();
cont = cont.replace($selObj.outerHtml(), "");
$('#ParentDIV').html(cont);
$(".dragImgClass").draggable({ delay: 100, containment: "#ParentDIV", scroll: false })
.on("click", selectAction);
$(".dragClass").resizable('destroy');
$(".dragClass").draggable({ delay: 100, containment: "#ParentDIV", scroll: false })
.resizable()
.on("dblclick", editAction)
.on("click", selectAction)
.on("blur", "textarea", blurAction);
}