私は初心者で、新しい div をドラッグ可能にすることに問題があります。
問題は、名前のダイアログを表示すると、いくつかの div が作成されますが、ドラッグできません。
私は初心者で、新しい div をドラッグ可能にすることに問題があります。
問題は、名前のダイアログを表示すると、いくつかの div が作成されますが、ドラッグできません。
これを行うことで、HTMLにハードコーディングされたいくつかの要素をドラッグ可能にしました。
$('。seleccionable')。draggable({drag:function(e、ui){$('#status_nombre')。html($(this).attr('id')); $('#status_top') .attr('value'、$(this).css('top')); $('#status_left')。attr('value'、$(this).css('left'));}、containment :'#layout'、refreshPositions:true、snap:true});
新しい要素を追加するときは、その要素に対しても.draggable()を呼び出す必要があります。
これを行う1つの方法は、そのセレクター/ドラッグ可能なコードを関数に入れ、新しい要素を追加した後にそれを呼び出すことです。
最後に、新しいdivを追加した後に解決策を見つけます...
$('#nv_objeto').click(function(){
var nbr =prompt("Por favor escriba el nombre del Objeto:","");
$("#layout").append("<div id='"+c_nbr(nbr)+"' class='seleccionable' style='top: 300px; left: 400px; width : 40px; height : 40px; background-color : black; position :absolute;'></div>");
$('#layout > div:last').blur().draggable({
drag: function(e, ui) {
$('#status_nombre').html($(this).attr('id'));
$('#status_top').attr('value',$(this).css('top'));
$('#status_left').attr('value',$(this).css('left'));
}
,containment: '#layout'
,refreshPositions: true
,snap: true
});
});
助けてくれてありがとう。
問題は、新しい要素を DOM に追加すると、既存のドラッグ可能な要素のイベント ハンドラーが継承されないことです。
あなたはliveQueryで運が良いかもしれません
これにより、セレクターに一致する現在および将来のすべての要素でライブ イベントを作成できます。組み込みの live() メソッドに似ています。私はそれを使用していませんが、ドラッグ可能で動作するはずです。