1

如何删除 div 的可拖动事件?

我想将新的 .point 添加到容器,然后对其进行拖动,但首先我想取消绑定 $('.piont') 的所有可拖动事件,该怎么做?

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.8.2/jquery-ui.js"></script>
<style type="text/css">
    *{margin:0;padding:0}
    .container{
        margin:50px;
        width:100px;
        height:100px;
        border:1px solid #777;
        position:relative
    }
    .point{
        width:20px;
        height:20px;
        background-color:tan;
        position:absolute;
    }
</style>
<script type="text/javascript">
    $(function(){
        $('.point').draggable({
            stop: function (e){
                alert(1);
            }
        }); 
    });

    function unbind_draggable(){
        // how can unbind draggable for .point?
    }
</script>
<div class="container">
    <div class="point"></div>
    <div class="point"></div>
    <div class="point"></div>
    <div class="point"></div>
</div>
<button onclick="unbind_draggable()">unbind_draggable</button>

在此处输入图像描述

4

4 回答 4

6

删除可拖动事件:

 $( ".selector" ).draggable( 'disable' ); OR
 $( ".selector" ).draggable( 'destroy' );

更多详细信息请查看 jQuery UI API 文档。点击这里

对于您的问题:

function unbind_draggable(){
     $('point').draggable( 'destroy' );
     //OR
     $('point').draggable( 'disable' );
}
于 2013-10-09T04:00:35.887 回答
2

要从所有.points 中删除 draggable,请使用:

function unbind_draggable(){
    $(".points").draggable("destroy");
}

这将删除所有可拖动的功能,而不仅仅是禁用它。

请参阅jQuery UI API

虽然只是禁用会起作用,但我不推荐它,因为它不会清除 jQuery 可拖动对象占用的 RAM。

于 2013-10-09T04:02:15.310 回答
0
 $('.point').droppable('disable');
于 2013-10-09T04:04:54.257 回答
0

试试这个:- http://jsfiddle.net/adiioo7/chyhf/

JS:-

$(function () {
    $('.point').draggable({
        stop: function (e) {
            alert(1);
        }
    });
});

function unbind_draggable() {
    $('.point').draggable("destroy");
}
于 2013-10-09T04:04:56.647 回答