感谢三个优秀的回答,它们都确定了我使用“onclick = ...”而不是“observe(”click“,...”scriptaculous draggables:当拖动元素时需要取消onClick动作
但接受的答案该奖项已去保罗Bergantino添加类名的机制,以纪念拖动的元素,它救了我更多的工作!
在我的HTML我有一个表每行上的图像链接。
<table class="search_results">
<tr>
<td class="thumbnail"><a href="..."><img src="..." /></a></td>
...
一个包含的JavaScript文件中包含的代码,使图像拖动
$$(".thumbnail a img").each(
function(img)
{
new Draggable(img, {revert:true});
}
);
和简单的处理来检测拖
Draggables.addObserver({
onEnd:function(eventName, draggable, event)
{
// alert (eventName); // leaving this in stops IE from following the link
event.preventDefault(); // Does Not Work !!!
// event.stop(); // Does Not Work either !!!
}
});
我的想法是,当图像被点击的结束链接应该被遵循,但是当它被拖拽时应该发生其他事情。
实际上发生的事情是,当图像被拖动时,处理程序被调用,但链接仍然被遵循。
我想我取消了错误的事件。
如何防止链接在元素被拖动后执行?
编辑:试图greystate的建议
后添加event.stop我现在有一个针对Firefox,阿帕奇等作品见下面我自己的答案碱性溶液。
但我仍在寻找一个针对IE7的解决方案(希望IE6)。
在IE中拖动图像时出现的另一个问题是,当工具提示出现时,图像与鼠标指针分离,必须释放鼠标并再次单击图像才能重新获取拖动。所以我也在寻找可能有助于解决这个问题的任何想法。
感谢您的建议。我尝试在两个版本中使用Event.stop,但结果相同。第二个版本适用于大多数浏览器,但两个版本都不适用于IE。 – 2009-02-17 13:05:24