【问题标题】:scripty (scriptaculous) draggable onEnd not executing in Safariscripty (scriptaculous) 可拖动 onEnd 未在 Safari 中执行
【发布时间】:2009-02-22 11:49:41
【问题描述】:

我创建了一个非常 iphone-y 滑块元素,它既限制了整体水平移动(0-400 像素并且它不垂直移动),又在 400 像素“容器”通过时“捕捉”到任一侧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>

谢谢! 安德鲁

【问题讨论】:

标签: javascript safari scriptaculous draggable


【解决方案1】:

为了您将来的参考(无法通过谷歌搜索任何内容),取消注释来自 onEnd 处理程序的 console.debug() 调用解决了这个问题。很奇怪。

【讨论】:

  • 你的意思是注释掉console.debug()吗?如果您使用 firebug,请访问他们的网站并确保使用他们的存根文件,该文件定义了“console.debug()”等函数,这样浏览器 /w-out firebug 就不会崩溃。
猜你喜欢
  • 2012-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-30
  • 1970-01-01
  • 1970-01-01
  • 2014-04-19
  • 1970-01-01
相关资源
最近更新 更多