怎么知道是否发生了还原?

时间:2011-07-25 05:57:37

标签: jquery jquery-ui

我正在使用jquery-ui的可拖动和可放置的功能。 我需要确定是否发生了还原。
是否可以捕获是否发生了“还原”?

1 个答案:

答案 0 :(得分:0)

感觉有点hacky,但可能的解决方案如下:

    $("#draggable").draggable({ revert: function(){if($('#droppable').hasClass('logRevert') == true){
            $('#droppable').removeClass('logRevert'); return false; 
    } 
else{
/*Your Code here*/
return true;
} 
});

revert接受一个函数,所以我们只返回true,如果不接受draggable,无论出于何种原因。

现在要做到这一点,我们必须在可接受的draggable高于droppable时添加我们的.logRevert类。在它丢弃并且没有被恢复之后,它将删除辅助类.logRevert。您现在可以始终将代码添加到返回

$("#droppable").droppable({
    accept: '#draggable',
    over: function(event, ui){$(this).addClass('logRevert');},
    drop: function(event, ui) {
        $(this).addClass('ui-state-highlight').find('p').html('Dropped!');
    }
});

来自Nick Craver的回答:jQuery draggable revert based on condition