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

基本的に、上記では、クリックを検出します。イベントは引き続き発生するため、マウスダウンをトリガーし、3 つのうちのどれが右クリックであったかを宣言します。これは、何らかの理由で右クリックが機能したためです。次に、トリガーするマウスダウンで、それが右クリックかどうかを検出し、そうであれば、要素にフォーカスします。

于 2012-12-16T02:55:00.490 に答える
2

handle適切な解決策は、オプションを設定することです。LIの上にない追加の要素を 内に作成する必要がありますinput。この要素はドラッグ ハンドルとして機能します。

于 2012-12-16T03:05:21.437 に答える