Ниже приведен пример одной строки таблицы:

<tr class="altrow">
<td><a href="/companies/view/59">Delta company</a></td>
<td></td>
<td>John</td>
<td>Doe</td>
<td>Green streer</td>
<td><a href="/companies/edit/59" target="_blank"><img src="/img/edit.png" alt="edit" width="18px" height="18px" title="edit" /></a></td>
    </tr>

Вот jQuery, который заставляет строку таблицы действовать как ссылку:

    $('tr.altrow').click( function() {
    window.location = $(this).find('a').attr('href');
}).hover( function() {
    $(this).toggleClass('hover');
});

Таким образом, он в основном находит первую ссылку - . Затем, если пользователь щелкает в любом месте строки таблицы, он перенаправляется на ссылку. Проблема в том, что я включаю изображение с другой ссылкой в ​​последний TD. Что происходит при щелчке по значку, так это то, что ссылка на значок открывается на другой вкладке, но также открывается ссылка для всего TR.

Я бы хотел сделать следующее: если щелкнуть значок, открывается только вторая ссылка.

Любая помощь очень ценится.

0
Domas 8 Апр 2014 в 18:03

4 ответа

Лучший ответ

Просто проверьте, что вы нажимаете:

$('tr.altrow').click( function(e) {
    if(!$(e.target).closest('[target="_blank"]').length) window.location = $(this).find('a').attr('href');
})
1
Karl-André Gagnon 8 Апр 2014 в 14:18
window.location = $(this).find('a').eq(1).attr('href');

eq(1) восстанавливает нахождение всех тегов до второго.

0
Alex 8 Апр 2014 в 14:06

Вы могли бы попробовать

$('tr.altrow').click( function() {
    window.location = $(this).find('a:last-child').click();
}).hover( function() {
    $(this).toggleClass('hover'); 
});

Это должно иметь такой же эффект

0
The Angry Saxon 8 Апр 2014 в 14:11

Если вы остановите распространение события для всех тегов <a>, то эти щелчки никогда не дойдут до <tr>. Таким образом, якоря будут выполнять свои собственные действия по умолчанию, а все остальное будет попадать в обработчик кликов <tr>.

$("tr.altrow a").click(function(e){
    e.stopPropagation();
});

Скрипка: http://jsfiddle.net/cELxM/

0
andi 8 Апр 2014 в 14:23