jQuery UI可拖动:单击时堆叠

jQuery UI Draggable: Stack on Click

本文关键字:单击 UI 拖动 jQuery      更新时间:2023-09-26

有什么方法可以在单击而不仅仅是拖动draggable的堆栈过程时启动它吗?

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

修改作者的代码,以下解决方案有效:

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});
}

但是,以某种方式调用库方法显然会更好。

通过破解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" });
 });