0

虽然在 IE 中这适用于 chrome,但它不会:在按下“Ctrl”时,可拖动中的“Snap”选项停止工作,我什至在拖动时按下 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

你想要做的是像这样重置 snap 选项:

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

    }});

它绑定到“start”而不是“keydown”,因此您不必在点击 Control 之前瞄准。

于 2012-12-23T21:40:55.027 回答