单击表格复选框时不打开新页面

时间:2013-04-09 19:25:53

标签: javascript jquery jsf

我有这个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以不打开新页面?

1 个答案:

答案 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();
    });
});