scripty(scriptaculous)draggable onEnd不在Safari中执行

时间:2009-02-22 11:49:41

标签: javascript safari scriptaculous draggable

我创建了一个非常iphone-y的滑块元素,它在水平方向上整体移动受限制(0-400px并且不会垂直移动),并且当它通过时“快照”到400px“容器”的任一侧200px标记和拖动已经结束。它在firefox中运行完美。在Safari中,永远不会调用将元素定位到此400px容器任一端的onEnd函数。更重要的是,可拖动的元素“粘住”鼠标光标,我必须重新加载页面以结束动画。

这是我的代码

<div style="width:100px;height: 60px;background-color:#000;z-index:999" id="dragtest" />
<script language="JavaScript" type="text/javascript">
new Draggable('dragtest', { constraint: 'horizontal',
    onEnd: function(e, me) {
        console.debug("!!!")
        element = e.element
        x = element.style.left
        x = x.gsub('px','')

        if (x >= 200) {
            $('dragtest').style.left = 400+'px';

        }

        if (x < 200) {
            $('dragtest').style.left = 0+'px';
        }

        console.debug("Snapping to ", element.style.left, " (x was ", x, ")")
        return true;

    },
    snap: function(x, y) {
        ret_x = x
        ret_y = y

        if (x >= 400) {
            ret_x = 400
        }

        if (x <= 0) {
            ret_x = 0
        }

        return [ret_x,ret_y]

    }
});
</script>

谢谢! 安德鲁

1 个答案:

答案 0 :(得分:0)

为了您将来的参考(不能谷歌任何东西),从onEnd处理程序中取消注释console.debug()调用解决了这个问题。怪异。