如何在Rails中创建一组可链接的?

时间:2013-07-25 16:18:53

标签: javascript jquery coffeescript

我正在尝试添加一个除了一个td之外的整行的链接。我设法通过以下

使整个行可以点击
<tbody>
    <% @inbox_messages.each do |message| %>
        <tr data-link="<%= show_received_message_path(message) %>">
            <td>
                <%= check_box_tag 'select' %>
            </td>
            <td>
                <%= message.received_sender %>
            </td>
            <td>
                <%= message.subject %>
            </td>           
            <td>
                <%= message.created_at %>
            </td>
        </tr>
    <% end %>
</tbody>

并使用以下coffeescript

$ ->
    $("tr[data-link]").click ->
        window.location = $(this).data("link")

但问题是,当我勾选复选框时,它会将我重定向到我不想要的show_received_message_path

我已经尝试搞乱div了但是我已经知道它不是有效的html将div放在trs内。

除了复选框之外,有没有办法链接所有行?

1 个答案:

答案 0 :(得分:1)

解决问题的一个简单方法是将点击处理程序附加到<td>而不是<tr>,然后使用jQuery的:not:has和{ {3}}选择器可以排除包含复选框的单元格。像这样:

$('tr[data-link] td:not(:has(:checkbox))').click ->
    $tr = $(@).closest('tr')
    #...

另请注意在点击处理程序中使用:checkbox,因为@<td>data-link位于<tr>;如果您愿意,可以使用closest代替closestclosest只会让事情更清晰。

演示:parent