Javascript 如何停止jquery可拖动函数?

Javascript 如何停止jquery可拖动函数?,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我在停止Jquery可拖动函数时遇到问题,我使用一个按钮来启用它,另一个按钮来停止它,尽管它可以在我尝试过但无法拖动的每个函数上运行 这是我的密码: 停止演示 div{ 位置:绝对位置; 背景色:#abc; 左:0px; 顶部:30px; 宽度:60px; 高度:60px; 保证金:5px; } jQuery UI可拖动-默认功能 去 停止 #拖拉的{ 宽度:150px; 高度:150像素; 填充:0.5em; 最高:5%; 左:5%;} //启动动画 $(“#go”)。单击(函数(){ $

我在停止Jquery可拖动函数时遇到问题,我使用一个按钮来启用它,另一个按钮来停止它,尽管它可以在我尝试过但无法拖动的每个函数上运行

这是我的密码:


停止演示
div{
位置:绝对位置;
背景色:#abc;
左:0px;
顶部:30px;
宽度:60px;
高度:60px;
保证金:5px;
}
jQuery UI可拖动-默认功能
去
停止
#拖拉的{
宽度:150px;
高度:150像素;
填充:0.5em;
最高:5%;
左:5%;}
//启动动画
$(“#go”)。单击(函数(){
$(“.block”).draggable();
});
//单击按钮时停止动画
$(“#停止”)。单击(函数(){
$(“.block”).stop();
});

调用
$.fn.stop
方法会停止运行动画,但不会停用拖动功能。您应该使用可拖动UI插件的方法:

$( ".block" ).draggable( "disable" );
演示:

UPD。感谢@zfrisch提供的改进版本,该版本还允许启用禁用的拖动:


$(文档)。在('click','#go',函数()上{
$('.block')。可拖动(“启用”);
});
$(文档)。在('单击','停止',函数()上){
$('.block').draggable(“禁用”);
});
//要永久删除可拖动行为,请使用:
//$(“#项目id”)。可拖动(“销毁”);

您可以使用此脚本切换square的可拖动功能,我认为这可能是最短的方法:

    // Start animation
    $("#go").click(function() {
        $(".block").draggable({disabled : false});
    });    

    // Stop animation when button is clicked
    $("#stop").click(function() {
        $(".block").draggable({ disabled : true} );
    });

你是对的,除了你的代码只允许你禁用移动。我认为最好同时显示启用和禁用。