感谢三个出色的答案,它们都确定了我使用“onclick = ...”而不是“observe(“click”,...”)的问题
但是,Accepted Answer 的奖项必须授予 Paolo 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 !!!
}
});
我的想法是,当单击图像时,应该遵循链接,但是当它被拖动时,应该会发生其他事情。
事实上,当图像被拖动时,处理程序被调用,但链接仍然被跟踪。
我想我取消了错误的活动。
拖动元素后如何防止链接被跟踪?
编辑:event.stop
在尝试了 graystate 的建议后添加
我现在有一个适用于 FireFox、Apache 等的基本解决方案。请参阅下面我自己的答案。
但我仍在寻找 IE7(希望是 IE6)的解决方案。
在 IE 中拖动图像的另一个问题是,当工具提示出现时,图像与鼠标指针分离,您必须释放鼠标并再次单击图像才能重新获得拖动。所以我也在寻找任何可能有助于解决这个问题的想法。