私はここで利用できる単純化された「ドラッグ可能な」関数をカスタマイズしています:jQuery-UIなしでドラッグ可能であり、これは私がこれまでに持っているものです:
$.fn.extend({
canDragMe: function(){
return this.each(function() {
var $this = $(this);
$this = $(this);
return $this.css('cursor', opt.cursor).on("mousedown", function(e) {
var $drag = $this.addClass('draggable');
drg_h = $drag.outerHeight(),
drg_w = $drag.outerWidth(),
pos_y = $drag.offset().top + drg_h - e.pageY,
pos_x = $drag.offset().left + drg_w - e.pageX;
$drag.on("mousemove", function(e) {
$('.draggable').offset({
top:e.pageY + pos_y - drg_h,
left:e.pageX + pos_x - drg_w
}).on("mouseup", function() {
$this.removeClass('draggable');
});
});
e.preventDefault(); // disable selection
}).on("mouseup", function() {
$this.removeClass('draggable');
}
});
});
});
私はそれをこのように使うつもりです:$('#mydiv').canDragMe();
。ただし、ユーザー入力に応じて、要素のドラッグのオンとオフを切り替える必要があります。
だから私の質問は、ドラッグをオフにする最も簡単な方法は何ですか?好き$('#mydiv').canNotDragMe();
か多分$('#mydiv').canDragMe(false);
(もちろんプラグインの入力オプションが必要です)。
編集
上記のアクションをマウスダウンからバインド解除する何らかの実装が必要であることを理解していますか?または、プラグインを「破壊」する方法はありますか?