【发布时间】:2015-11-17 21:27:52
【问题描述】:
我有一个表格,每行都有一个复选框。我为单击移动到另一个页面创建了一个事件处理程序,但是如果我单击了复选框,我想阻止它移动。以下代码是我所拥有的:
表格布局
echo '<tr class="unread"><td><label class="fancy-checkbox"><input type="checkbox"><span> </span></label></td>';
echo '<td><span class="from">' . $message['message_from_first_name'] . '</span></td>';
echo '<td><span class="title">' . $message['subject'] . '</span> <span class="preview">- ' . strip_tags($message['message_preview']) . '</span></td>';
echo '<td><span class="timestamp">' . $message['datestamp'] . '</span></td>';
echo '<td style="display:none;">' . $message['message_id'] . '</td>';
echo'</tr>';
jQuery
<script>
$('table tr').click(function(event) {
if (event.target.type !== 'checkbox') {
var id = $("td:last-child", this).text();
$.redirect('?action=view-message', {message_id: id});
}
});
</script>
【问题讨论】:
-
明确一点,这是行不通的。重定向仍然触发!
-
您能否显示实际生成的 HTML 而不是 PHP 脚本代码。另外,正如您所知,像这样回显 HTML 确实是不明智的。你应该研究一下 PHP 的模板功能。
-
尝试
event.stopPropagation()停止触发其他元素的事件。 -
我感觉你的 CSS 隐藏了你的复选框,然后你点击了一个标签。
console.log(event.target)显示什么? -
console.log 显示 ::before" "
标签: javascript jquery html checkbox