0

IEではこれはクロムで機能しますが、「Ctrl」を押している間はドラッグ可能な「スナップ」オプションが機能しなくなり、ドラッグ中にctrlを押してもアラート(「SNAP」)が表示されないようです。私の試みは次のとおりです。

 $("#object").draggable({
        handle: '#handle_',
        containment: '#MainBody',
        snap: ".drag_alignLines", // Setting snap to alignment lines
        snapTolerance: 15
                            }).bind('keydown', function(event){ 
                        alert("SNAP");
                    if(event.ctrlKey)
                    {
                        alert("hi");
                        this.draggable( "option", "snap", false );
                    }
                });

ドラッグ中にChromeにctrlキーをキャッチさせることはできません...そしてIEでも: "this.draggable( "option"、 "snap"、false );" ドラッグ中にスナップを停止させないでください...

4

1 に答える 1

1

あなたがしたいことは、次のようにスナップオプションをリセットすることです:

$( "#object" ).draggable( "option", "snap", false );

通常のクリックで元の値に戻すことを忘れないでください。この jsfiddleの関連セクションは次のとおりです。

$("#object").draggable({
containment: '#MainBody',
snapTolerance: 15,
start: function(event)
    {
        if(event.ctrlKey)
        {
            $(this).draggable("option", "snap", false);
        }else {
            $(this).draggable("option", "snap", '.drag_alignLines');
        }

    }});

「キーダウン」ではなく「開始」にバインドされるため、Control を押す前に照準を合わせる必要はありません。

于 2012-12-23T21:40:55.027 に答える