Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   JS. Onclick. (https://javascript.ru/forum/css-html/30712-js-onclick.html)

SergRonin 13.08.2012 14:21

JS. Onclick.
 
Есть таблица, каждая строка, при наведении на нее мышкой - меняет цвет, TR описана следующим кодом:
<tr align=\"center\" class=\"price align=\"center\" bgcolor=\"FAF9C9\"
onclick=\"window.location.href='info.php?t=pkv&id=$idskv'\" style=\"cursor:pointer\"
onMouseOver=this.style.backgroundColor='7A9EF9' onMouseOut=this.style.backgroundColor='FAF9C9'>

В одной ячейки имеется img, в качестве ссылки:
<a href=\"http://site.ru/info.php?id=$id\" title=\"Сайт\" onClick=\"window.external.AddFavorite(this.href, this.title); return false;\" rel=\"sidebar\">
<img border=\"0\" src=\"images/add.png\"></a>

2 небольших вопроса:

1) Каким образом можно показать браузеру, что данная строка является "ссылкой" - это нужно для того, что-бы при кликании правой кнопкой мыши, в меню присутствовали "открыть в новой вкладке", "открыть в фоновой влкдаке" и т.д.?

2) Каким образом сделать исключение для какой-либо ячейки, при обработке "onClick": проблема в том, что при нажатии на "add.png" (картинки) происходит одновременно и добавление в избранное, и открытие указанной страницы...Тоесть у меня 2 шт. "onClick" на один объект. Требуется только добавление в избранное...

Dmitriyff 13.08.2012 14:42

ну ссылки всегда были такие
<a href='#'>ссылка</a>


а чтобы не было перехода по ссылке, стоит вернуть false

a.onclick = function() { alert(123); return false; }; // 'а' тут какой-то dom элемент <a>

<a href='ololo' onclick='alert(123); return false'>ololo</a>

SergRonin 13.08.2012 15:56

Да, правильно, мы возвращаем false - перехода нету.
Но: мы для всей строки уже указали переход в onclick:
<tr align=\"center\" class=\"price align=\"center\" bgcolor=\"FAF9C9\"
onclick=\"window.location.href='info.php?t=pkv&id=$idskv'\" style=\"cursor:pointer\"
onMouseOver=this.style.backgroundColor='7A9EF9' onMouseOut=this.style.backgroundColor='FAF9C9'>

И получается, что как-бы один "слой" onclick накладывается на другой, и в результате если не срабатывает второй (во время добавления в избранное), срабатывает первый...
P.S. первый убрать нельзя, т.к. там идет изменение цвета и ссылка на следующую страницу...

Dmitriyff 14.08.2012 09:00

если не получается добиться результата текущем способом, попытайтесь изменить логику, сделайте по другому, можно ведь и ajax послать, для каждой проблемы найдется несколько способов ее решения =-)


Часовой пояс GMT +3, время: 10:47.