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

时间:2012-02-28 19:31:35

标签: jquery-ui jquery-ui-sortable

我正在使用jQuery UI Sortable插件,一切都按预期接受一个问题。完成拖动项目以重新排序列表(<A>标记列表)后,点击事件在完成删除后触发。

之前有人遇到过这个问题吗?如果是这样,你是如何解决它的?

3 个答案:

答案 0 :(得分:7)

好的......我明白了......

这是我的解决方案:

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

答案 1 :(得分:1)

只需添加可排序选项:

helper : 'clone'

它将阻止源元素的click事件,并且不会以任何方式改变UX。

请参阅doc for "helper"

答案 2 :(得分:0)

$(thumbOpts.container).sortable({
        items: '.page',
        revert: true,
        opacity: 0.5,
        start: function(evt, ui) {
            ui.item.find('a').one('click', function(){return false;});
        },
});