3

在实现方法之后,我不能再使用输入字段来输入数据。cancelsortable

$(function() {
            $( ".sortable" ).sortable({
                connectWith: ".connected-sortable",
                cancel: ".not-sortable",
                update: function(){

                // php update...
                }
            });
});​

所有输入字段都可以正常工作, cancel知道如何解决这个问题?或者,也许我在 html 代码中犯了一些错误,等等?

这是测试页面 -

jsfiddle

4

2 回答 2

2

这真的很奇怪,而且可能有点痛苦。

我想出了一个解决方法,但这不是最干净的。

$('input').on('click', function(e) {
    $(this).trigger({
        type: 'mousedown',
        which: 3
    });
});

$('input').on('mousedown', function(e) {
    if(e.which == 3){
        $(this).focus();   
    }
});

基本上,在上面,我们检测到点击。该事件仍然触发,所以我们触发 mousedown 并声明 3 中的哪一个,这是右键单击,因为由于某种原因右键单击有效。然后在我们触发的 mousedown 中,我们检测它是否是右键单击,如果是,我们将聚焦元素。

于 2012-12-16T02:55:00.490 回答
2

一个好的解决方案是设置handle选项。将要求您在您的内部创建一个LI不在input. 该元素将充当拖动手柄

于 2012-12-16T03:05:21.437 回答