scripty(scriptaculous)可拖动onEnd不在Safari中执行


0

我已经创建了一个非常iphone-y滑块元素,它在水平方向(0-400像素,不垂直移动)和“捕捉” 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> 

的感谢! andrew

  0

提交bug报告http://bugs.webkit.org:D 22 2月. 092009-02-22 23:19:55

0

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

  0

你的意思是说出console.debug()吗?如果你使用萤火虫,请到他们的网站,并确保使用他们的存根文件,它定义了诸如“console.debug()”之类的功能,这样浏览器/ w-out萤火虫不会炸毁。 25 2月. 092009-02-25 17:27:49

  0

谢谢,我确实已经加载了firebug-lite .. 28 2月. 092009-02-28 03:01:37