Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui 如何禁用jquery ui可拖动?_Jquery Ui_Enable_Disable_Draggable_Jquery_Opacity_Problem_Html - Fatal编程技术网

Jquery ui 如何禁用jquery ui可拖动?

Jquery ui 如何禁用jquery ui可拖动?,jquery-ui,enable,disable,draggable,jquery,opacity,problem,html,Jquery Ui,Enable,Disable,Draggable,Jquery,Opacity,Problem,Html,如何禁用jQuery Dragable,例如在UpdatePanel回发期间?可以创建DisableDrag(myObject)和EnableDrag(myObject)函数 然后 我花了一点时间才弄明白如何禁用Dragable on drop使用ui.Dragable引用从drop函数内部拖动的对象: $("#drop-target").droppable({ drop: function(event, ui) { ui.draggable.draggable("dis

如何禁用jQuery Dragable,例如在UpdatePanel回发期间?

可以创建DisableDrag(myObject)和EnableDrag(myObject)函数

然后


我花了一点时间才弄明白如何禁用Dragable on drop使用
ui.Dragable
引用从drop函数内部拖动的对象:

$("#drop-target").droppable({
    drop: function(event, ui) {
        ui.draggable.draggable("disable", 1); // *not* ui.draggable("disable", 1);
        …
    }
});

HTH某人要临时禁用可拖动行为,请使用:

$('#item-id').draggable( "disable" )
要永久删除可拖动行为,请使用:

$('#item-id').draggable( "destroy" )

似乎没有人看过原始文档。可能当时没有

使用指定的禁用选项初始化可拖动文件

$( ".selector" ).draggable({ disabled: true });
在init之后获取或设置disabled选项

//getter
var disabled = $( ".selector" ).draggable( "option", "disabled" );
//setter
$( ".selector" ).draggable( "option", "disabled", true );

对于对话框,它有一个名为draggable的属性,请将其设置为false

$("#yourDialog").dialog({
    draggable: false
});

尽管这个问题很老,但我尝试了建议的解决方案,但对对话无效。希望这可以帮助像我这样的人。

要在我使用的jQuery中启用/禁用Dragable,请执行以下操作:

$("#draggable").draggable({ disabled: true });          

$("#draggable").draggable({ disabled: false });
@Calciphus的答案不适用于我的不透明问题,因此我使用:

div.ui-state-disabled.ui-draggable-disabled {opacity: 1;}
也曾在移动设备上工作过

代码如下:


以下是
.draggable({})内部的情况


更改可拖动的属性

<span draggable="true">Label</span>
标签

标签

我有一个更简单、更优雅的解决方案,它不会弄乱类、样式、不透明度和其他东西

对于可拖动元素-添加“开始”事件,每次尝试将元素移动到某个位置时都将执行该事件。你将有一个不合法的条件。对于非法的移动-使用“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();
            }    

        }
    });

不客气:)

这很有效。DragTable()的完整文档为。sortable()对象也是如此(如果您允许拖放重新排序),也就是说,使用上面的nickb链接,将继续执行。;)这给了我“在初始化之前无法调用draggable上的方法;试图调用方法‘disable’”。Mian Haseeb:看这个:我发现‘disable’有一个与css相关的副作用,但是destroy可以完美地工作。@jedanput使用disable的副作用是,draggable元素的外观变灰了。destroy似乎不考虑外观。这很有效,但有一个副作用,使我的div的不透明度达到50%左右。。。我不知道为什么。@ScottBeeson每当您在jQuery中禁用某些内容时,它都会添加“ui状态禁用”类。您可以使用:$(“.ui draggable”).removeClass(“ui状态禁用”)删除它。我不确定这个问题是否与jQueryUI对话框有关,但我发现您的帖子很有帮助。您的JSFIDLE似乎不起作用。按钮不点击(使用最新的Chrome)。我尝试将其更新为链接并调用
按钮()
,但没有任何帮助。在给出的所有解决方案中,只有这一个对我100%有效-所有其他(使用禁用/销毁等组合)都没有解决css问题。在我使用drag+drop的应用程序中,我发现自初始化以来被拖动的元素与未被触摸的元素的不透明度不同。都很乱。感谢@CarinaPilar提供的解决方案和JSFIDLE的证明。谢谢。在AngularJS中使用draggable/dropable指令时,此解决方案似乎运行良好。
$("#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
});
<span draggable="true">Label</span>
<span draggable="false">Label</span>
    $(".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();
            }    

        }
    });