【问题标题】:jquery ui sortable propagation dynamically created sortablesjquery ui 可排序传播动态创建的可排序
【发布时间】:2013-07-12 09:59:40
【问题描述】:

我想要一个功能,每次我从空白空间的可排序中拖动图像时,都会创建一个新的可排序。 如果我将两个图像存储在可排序中,则可以拖动它们并真正创建新的可排序(灰色框)。 现在我希望能够将图像从新创建的灰色框中拖出,这样如果我放在空白处,就会再次创建一个新的灰色框。这不起作用。如何将我的 uls 函数传播到动态创建的 uls?刷新似乎不起作用或者我的错误在哪里?

这是我的 jsfiddle:http://jsfiddle.net/Gy74c/6/

$( "ul" ).sortable({opacity:0.4, connectWith: 'ul',tolerance:'pointer',cursor:'move', dropOnfull: true, stop :function (event,ui){                

                                       var positionLeft=ui.position.left;
                                       var positionTop=ui.position.top;
                                       var overSortable=elementBeingHoveredOver(event.pageX, event.pageY);

                                       if (!overSortable){                                          
                                       var x=$ ("<ul id='sortable10' class='drop'></ul>");
                                       $(x).css('position','absolute');
                                       $(x).css('left',positionLeft);
                                       $(x).css('top',positionTop); 
                                       $(x).css('height','70px');                                      
                                       ui.item.appendTo(x);
                                       $(x).sortable({connectWith: 'ul'})
                                       x.appendTo('#images');
                                       $('#images').append(x);
                                       $( "ul" ).sortable({ connectWith: 'ul'});
                                       $("ul").sortable('refresh');
                                       }        

    currentID=$(this).attr('id');        
    var liNumber=document.getElementById(currentID).getElementsByTagName("li").length; 
    if (liNumber==0 &&!currentID=="sortable1"){document.getElementById(currentID).style.visibility= "hidden"}
                        }//stop-function

                     });//sortable-block

【问题讨论】:

    标签: jquery jquery-ui dynamic jquery-ui-sortable dhtml


    【解决方案1】:

    我已经把它“整理”出来了 ;).. 至少如果我理解正确的话。

    http://jsfiddle.net/Gy74c/10/

    $( "ul" ).sortable(options);
    

    我已经创建了一个 var 选项,它包含可排序的所有选项。现在在停止事件中,我再次使用所有选项重新启动可排序。这只是没有起到神奇的作用。你利用了ui.position.left 和 .top 绝对定位新创建的 ul.. 您必须使用 ui.offset.left 和 top 来获取元素的实际左侧和顶部.. 没有这个图像将被放置第二次移动它时,它在屏幕外,然后全部完成。 ;)

    提示: 因为 var x 在声明时已经是一个 jQuery 对象,所以你以后不必使用 $(x) 只需 x.jQueryMethod 就可以了;)

    编辑:糟糕,我忘了删除 console.log() 的

    【讨论】:

    • 我很抱歉。你的缩进..但我认为这不会是一个问题
    • 谢谢,我欠你一个,对不起我的英语不好,有点生疏:) 过去 3 个小时试图解决它
    • 不,这是最小的问题,我真的很高兴它可以工作
    • 再次很高兴我能提供帮助 ;).. 你的英语很好.. 我希望你现在明白解决方案以及问题所在?
    猜你喜欢
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    • 2012-03-11
    • 2013-07-04
    • 1970-01-01
    相关资源
    最近更新 更多