Jquery ui 拖放后的jQuery UI可排序停止事件

Jquery ui 拖放后的jQuery UI可排序停止事件,jquery-ui,jquery-ui-sortable,Jquery Ui,Jquery Ui Sortable,我正在使用jQueryUISortable插件,一切都按预期工作,只接受一个问题。在我完成拖动项目以对列表(标签列表)重新排序后,单击事件将在拖放完成后触发 以前有人碰到过这个问题吗?如果是这样的话,您是如何着手修复它的?好的。。。我想出来了 以下是我的解决方案: $(thumbOpts.container).sortable({ items: '.page', revert: true, opacity: 0.5, start:

我正在使用jQueryUISortable插件,一切都按预期工作,只接受一个问题。在我完成拖动项目以对列表(标签列表)重新排序后,单击事件将在拖放完成后触发


以前有人碰到过这个问题吗?如果是这样的话,您是如何着手修复它的?

好的。。。我想出来了

以下是我的解决方案:

$(thumbOpts.container).sortable({
        items: '.page',
        revert: true,
        opacity: 0.5,
        start: function(evt, ui) {
            var link = ui.item.find('a');
            link.data('click-event', link.attr('onclick'));
            link.attr('onclick', '');
        },
        stop: function(evt, ui) {
            setTimeout(
                function(){
                    var link = ui.item.find('a');
                    link.attr('onclick', link.data('click-event'));
                },
                    200
            )
        }
    });

只需添加可排序的选项:

helper : 'clone'
它将阻止源元素的单击事件,并且无论如何都不会更改

请参阅。

$(thumbOpts.container)。可排序({
项目:'.page',
回复:对,
不透明度:0.5,
开始:功能(evt、ui){
ui.item.find('a').one('click',function(){return false;});
},
});

您能否构建测试用例来重现您的问题?您确定这是单击事件吗?还有一些其他事件是在完成拖放后触发的(最常见的可能是“更改”事件)。如果您向我们展示您的代码,可能能够提供更好的答案。这可能会有所帮助,因为这似乎就是您遇到的问题:这是一个JSFIDLE-我还与iviewer合作,这可能会导致问题@ChrisMitchell-我尝试了你的建议,但没有成功:(Ok+1,但你不认为应该存在一个更干净的解决方案吗?排序过程中是否有事件?类似于Dragable(拖动时)之类的东西?