インスタンスが破棄されたとき (またはその前のステップ) にドラッグ可能なプラグインによって行われたすべての変更を削除する方法はありますか? 私は次のようなことをしてみました:
if (target) {
$(target).draggable("option","revert",true);
$(target).draggable("destroy");
}
うまくいきません。
編集:
私の推測では、元に戻すオプションを変更した後、基本的に、要素が最初にあった場所ではなく、現在の場所に開始点が設定されます。
EDIT2:
より多くのコード:
$(editbtn).toggle(
function() {
var target;
$(this).attr('data', 'on');
//appedning editor to body
editor.draggable().appendTo($('body'));
//make hints selectable
$('.ui-hint').live('click.hintAdmin', function(e) {
//get rid of prev binds/drags if present
if (target) {
$(target).draggable();
$(target).draggable("destroy");
}
$(save).unbind('click.hintAdmin');
$(del).unbind('click');
$('.ui-hintAdmin-edit-hl').removeClass('ui-hintAdmin-edit-hl');
$('.ui-hintAdmin-hider').remove();
target = e.target;
var $this = $(this);
//get hint instances and targets
var hint_t = $(this).prev();
var hint = $(this).prev().data('hint');
var offset_start, offset_stop, offset_final, axis;
$(target).append(del);
self._hintHider(hint, $this);
//making delete work and clean after itself
$(del).on('click.hintAdmin', function() {
$('.ui-hintAdmin-edit-hl').removeClass('ui-hintAdmin-edit-hl');
$(save).unbind('click.hintAdmin');
$(label).html('');
$(edit).val('');
$(del).unbind('click');
$(target).draggable("destroy");
hint_t.hint("destroy");
$('.ui-hintAdmin-hider').remove();
})
$(target).addClass('ui-hintAdmin-edit-hl');
$(label).html('Editing hint # ' + hint.options.id);
$(edit).val(hint.options.text);
//choosing the axis
switch (hint.options.position) {
case 'top':
axis = 'x';
break;
case 'bottom':
axis = 'x';
break;
case 'left':
axis = 'y';
break;
case 'right':
axis = 'y';
break;
}
offset_start = $(target).offset();
$(target).draggable({
axis: axis,
grid: [5, 5],
stop: function(e, ui) {
offset_stop = ui.offset;
switch (hint.options.position) {
case 'top':
offset_final = '' + offset_stop.left - offset_start.left + '';
console.log('top' + offset_final);
break;
case 'bottom':
offset_final = '' + offset_start.left - offset_stop.left + '';
console.log('bottom' + offset_final);
break;
case 'left':
offset_final = '' + offset_stop.top - offset_start.top + '';
console.log('left' + offset_final);
break;
case 'right':
offset_final = '' + offset_stop.top - offset_start.top + '';
console.log('right' + offset_final);
break;
}
;
}
});
{rest of the code . .}
}