Javascript jQuery UI可拖动:单击即可堆叠

Javascript jQuery UI可拖动:单击即可堆叠,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,是否有任何方法可以在单击而不仅仅是拖动时启动可拖动的堆栈过程 我找到了解决方案,基本上就是复制库代码。(它还缺少我在下面插入的一个重要部分)。难道没有更优雅的解决方案吗 通过修改作者的代码,以下解决方案可以正常工作: function bringFront(elem, stack){ // Brings a file to the stack front var min, group = $.makeArray($(stack)).sort(function(a, b) {

是否有任何方法可以在单击而不仅仅是拖动时启动可拖动的
堆栈过程

我找到了解决方案,基本上就是复制库代码。(它还缺少我在下面插入的一个重要部分)。难道没有更优雅的解决方案吗

通过修改作者的代码,以下解决方案可以正常工作:

function bringFront(elem, stack){
    // Brings a file to the stack front
    var min, group = $.makeArray($(stack)).sort(function(a, b) {
        return (parseInt($(a).css("zIndex"), 10) || 0) - (parseInt($(b).css("zIndex"), 10) || 0);
    });

    if(group.length < 1) return;
    min = parseInt(group[0].style.zIndex, 10) || 0;
    $(group).each(function(i) {
        this.style.zIndex = min+i;
    });

    if(elem == undefined) return;
    $(elem).css({'zIndex' : min+group.length});
}
函数bringFront(元素、堆栈){
//将文件带到堆栈前端
var min,group=$.makeArray($(堆栈)).sort(函数(a,b){
return(parseInt($(a).css(“zIndex”),10)| | 0)-(parseInt($(b).css(“zIndex”),10)| | 0);
});
如果(组长度<1)返回;
min=parseInt(组[0])。style.zIndex,10)| 0;
$(组)。每个(功能(i){
this.style.zIndex=min+i;
});
if(elem==未定义)返回;
$(elem.css({'zIndex':min+group.length});
}

但显然最好以某种方式调用库方法。

通过破解jquery可拖动小部件找到了解决方案:

$('#myDraggable').click(function(event){
    var widget = $('#myDraggable').data('ui-draggable');
    widget._mouseStart(event);
    widget._mouseDrag(event);
    widget._mouseStop(event);   
}); 

您是否只是尝试过通过单击触发可拖动堆栈

 $('#target').on("click", function() {
       $( this ).draggable({ stack: "#products" });
 });

它不起作用。显然,初始化时没有调用stacking函数。谢谢,这太棒了,我在可调整大小的函数的start()回调中使用了它,以便将调整大小的元素也放在前面。虽然我希望他们能公开这种方法,但它也可以用于其他方面。