忽略/取消浏览器拖动以进行JavaScript拖动;下降

时间:2009-08-31 17:58:58

标签: javascript drag-and-drop

我正在实施一个拖累和放大器删除(普通)JavaScript中的脚本。一切都好,除了一件事。例如,在Firefox(可能不仅仅是那里)中,如果你第二次拖动一个对象,它就会被拖动为一个内置的浏览器功能(为了便于拖放和放大图像保存到桌面,例如,我认为) 。那么这种废墟就是我的剧本。

事情是,我知道这是可能的,我甚至以前做过,但这就像很长一段时间,我通过反复试验让它工作,只是输入了focus()和blur()放置'直到它似乎真的失去了焦点。

所以,如果有人知道如何为我清除这一点,那么他就是我个人的英雄。拖动对象上的模糊()? focus()在另一个?等

谢谢!

//好的,关于此的代码部分将是:

...
    this.handle.onmousedown = function(e)
    {
        self.startDragging(e);
    };
    this.handle.onmouseup = function(e)
    {
        self.stopDragging(e);
    };
    setInterval(function(){self.animate()}, 25);
...
startDragging: function(e)
{
    this.dragging = true;
},
stopDragging: function(e)
{
    this.dragging = false;
},
animate: function()
{
    if(this.dragging)
...

1 个答案:

答案 0 :(得分:1)

除非我误解了您的问题,否则请尝试event.preventDefault();在你的mousedown事件监听器中。如果您能提供代码片段以向我们展示如何实施拖放操作,那将会有所帮助。

编辑:通过您的实施,此类内容应该有效:

this.handle.onmousedown = function(e) {
    if(!e) e = window.event;
    if(e.preventDefault) e.preventDefault();
    else e.returnValue = false;

    self.startDragging(e);
};

但是,我建议改为使用事件监听器。