Спасибо за три отличных ответа, которые все определили мою проблему использования "onclick = ..." вместо "наблюдаем (" нажмите ", ..."
Но награда за «Принятый ответ» должна достаться Паоло Бергантино за механизм добавления имени класса для пометки перетаскиваемого элемента, что спасло мне еще немного работы!
<ч />
В моем 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 !!!
}
});
Моя идея заключается в том, что при нажатии на изображение следует переходить по ссылке, но при перетаскивании должно произойти что-то еще.
На самом деле происходит то, что при перетаскивании изображения вызывается обработчик, но ссылка по-прежнему сохраняется.
Полагаю, я отменяю неправильное событие.
Как я могу предотвратить переход по ссылке после перетаскивания элемента?
<ч />
edit: добавлен event.stop после попытки предложения greystate
<ч />
Теперь у меня есть базовое решение, которое работает для FireFox, Apache и т. Д. См. Мой собственный ответ ниже.
Но я все еще ищу решение для IE7 (и, надеюсь, IE6).
Еще одна проблема при перетаскивании изображений в IE заключается в том, что при появлении всплывающей подсказки изображение отсоединяется от указателя мыши, вам нужно отпустить кнопку мыши и снова щелкнуть изображение, чтобы заново перетащить изображение. Поэтому я также ищу любые идеи, которые могут помочь решить эту проблему.