JQuery draggable snap取消键

时间:2012-12-23 19:30:34

标签: jquery triggers keyboard-shortcuts jquery-ui-draggable

虽然在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);”只是拖动时不要让它停止拍摄...

1 个答案:

答案 0 :(得分:1)

您要做的是重置snap选项,如下所示:

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

请记住在常规点击时将其设置回原始值。以下是this 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');
        }

    }});

它绑定到'开始'而不是'keydown',所以你不必在击中Control之前瞄准。