【问题标题】:jQuery UI re-enable draggable within a new function after disabling禁用后,jQuery UI 在新功能中重新启用可拖动
【发布时间】:2010-09-13 18:01:26
【问题描述】:

我正在开发一个需要拖放的应用。放置时,选定的可拖动对象需要保持存在但被禁用。然后新的“丢弃”项目附加一个“关闭”按钮。单击关闭按钮后,该项目将从“可放置”区域消失并重新激活为可拖动项目。

问题是,一旦我禁用了可拖动项(在成功放置后),我就无法在单独的“删除”功能中重新启用该唯一项。这是一些示例代码 - 为了简单起见,其中很多被删除,希望就我遇到的这个特定问题获得建议。

// DROP: initiate droppables  

    $(".droppable").droppable({
            hoverClass: 'drag-state-hover',
            accept: '.draggable li img',
            tolerance: 'fit',
            drop: function(event, ui) {

                var elementID = $(ui.draggable).attr("id") // get the dynamically set li id for each list item chosen

                if(    $(this).children('img').attr('src') == 'images/elements/blank.gif'  ) {

                    // disable the element once it's been dragged and dropped
                    $(ui.draggable).draggable( 'option', 'disabled', true );
                    // turn on the remove link
                    $(this).find('a.remove').toggle();                                       

                }                                                                          

            }                                                                               
        });       



    // ITEM REMOVE: function for removing items
    $('.remove').click(function(e) {

            var targetID = $(this).parent('li').attr('id');
            $('#' + targetID).children('img').draggable( 'option', 'disabled', false );

            e.preventDefault();

        });

我也试过了,没有成功...

// ITEM REMOVE: function for removing items
$('.remove').click(function(e) {

        var targetID = $(this).parent('li').attr('id');

        $(".droppable").droppable({
            hoverClass: 'drag-state-hover',
            accept: '.draggable li img',
            tolerance: 'fit',
            drop: function(event, ui) {                           
                $(ui.draggable).draggable( 'option', 'disabled', false );                                                   
            }                                                                               
        });                                                               

        e.preventDefault();

    });

我花了几天时间在 google 上搜索解决方案,但此时我正在摸索。任何帮助将不胜感激。谢谢!!

【问题讨论】:

    标签: jquery-ui draggable


    【解决方案1】:

    在您的删除功能中,您是否尝试过将元素重新实例化为可拖动元素? $('#' + targetID).children('img').draggable{}

    【讨论】:

      【解决方案2】:

      您可以使用.draggable( 'enable' );,而不是使用.draggable( 'option', 'disabled', false );。我不知道这是否能解决您的问题,但这就是我开始调试它的方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-18
        • 1970-01-01
        • 2015-11-09
        • 1970-01-01
        • 2012-12-28
        • 2011-07-31
        相关资源
        最近更新 更多