我有这个JavaScript,当我点击一个表格行时会打开新页面:
$(document).ready(function () {
$('table[id$="dataTable"]').find("tbody").on("click", "tr", function () {
$(this).find('a[id$="lnkHidden"]').trigger("click");
}).on("click", 'a[id$="lnkHidden"]', function (e) {
e.stopPropagation();
});
});
JavaScript用于调用此按钮:
<h:commandLink id="lnkHidden" action="#{bean.pageRedirect}" style="text-decoration:none; color:white; display:none">
<f:setPropertyActionListener target="#{bean.sessionValue}" value="#{item.value}" />
</h:commandLink>
代码运行良好但事实证明,当我选择表格的第一列是一个复选框时,我也打开一个新页面。如何在单击复选框时修改JavaScript以不打开新页面?
答案 0 :(得分:2)
监听表格单元格而不是行的点击次数,然后忽略第一列中的单元格。
坚持使用jQuery,这可能有用:
$(document).ready(function () {
$('table[id$="dataTable"]').find("tbody").on("click", "td", function () {
if (this.cellIndex > 0) {
$(this.parentNode).find('a[id$="lnkHidden"]').trigger("click");
}
}).on("click", 'a[id$="lnkHidden"]', function (e) {
e.stopPropagation();
});
});