たとえば、UpdatePanelポストバック中に、ドラッグ可能なjQueryを無効にするにはどうすればよいですか?
たとえば、UpdatePanelポストバック中に、ドラッグ可能なjQueryを無効にするにはどうすればよいですか?
回答:
DisableDrag(myObject)およびEnableDrag(myObject)関数を作成できます
myObject.draggable( 'disable' )
その後
myObject.draggable( 'enable' )
ドラッグ可能な動作を一時的に無効にするには、以下を使用します。
$('#item-id').draggable( "disable" )
ドラッグ可能な動作を完全に削除するには、次を使用します。
$('#item-id').draggable( "destroy" )
私が使用したjQueryでドラッグ可能を有効/無効にするには:
$("#draggable").draggable({ disabled: true });
$("#draggable").draggable({ disabled: false });
@Calciphusの回答は不透明度の問題でうまく機能しなかったため、次のように使用しました。
div.ui-state-disabled.ui-draggable-disabled {opacity: 1;}
モバイルデバイスでも動作しました。
これがコードです:http : //jsfiddle.net/nn5aL/1/
button()
が、それは役に立ちませんでした。
ドロップ時にドラッグ可能を無効にする方法を理解するには少し時間がかかりました。ui.draggable
ドロップ関数内からドラッグされているオブジェクトを参照するために使用します。
$("#drop-target").droppable({
drop: function(event, ui) {
ui.draggable.draggable("disable", 1); // *not* ui.draggable("disable", 1);
…
}
});
HTH誰か
元のドキュメントを誰も見なかったようです。その時それがなかったかもしれません))
無効化されたオプションを指定してドラッグ可能オブジェクトを初期化します。
$( ".selector" ).draggable({ disabled: true });
初期化後、無効オプションを取得または設定します。
//getter
var disabled = $( ".selector" ).draggable( "option", "disabled" );
//setter
$( ".selector" ).draggable( "option", "disabled", true );
ダイアログの場合は、draggableというプロパティがあり、falseに設定します。
$("#yourDialog").dialog({
draggable: false
});
質問は古いですが、提案された解決策を試してみましたが、ダイアログでは機能しませんでした。これが私のような他の人に役立つことを願っています。
以下は、これが内部でどのように見えるかです。 .draggable({});
$("#yourDraggable").draggable({
revert: "invalid" ,
start: function(){
$(this).css("opacity",0.3);
},
stop: function(){
$(this).draggable( 'disable' )
},
opacity: 0.7,
helper: function () {
$copy = $(this).clone();
$copy.css({
"list-style":"none",
"width":$(this).outerWidth()
});
return $copy;
},
appendTo: 'body',
scroll: false
});
私は、クラス、スタイル、不透明度などを台無しにしない、シンプルでエレガントなソリューションを持っています。
ドラッグ可能な要素の場合-要素をどこかに移動しようとするたびに実行される「開始」イベントを追加します。移動が合法ではない状態になります。違法な動きのために-'e.preventDefault();'でそれらを防ぎます 以下のコードのように。
$(".disc").draggable({
revert: "invalid",
cursor: "move",
start: function(e, ui){
console.log("element is moving");
if(SOME_CONDITION_FOR_ILLEGAL_MOVE){
console.log("illegal move");
//This will prevent moving the element from it's position
e.preventDefault();
}
}
});
どういたしまして :)