2013-04-09 69 views
3

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

回答

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(); 
    }); 
}); 
+0

代码工作,但事实证明是有问题的。当我选中复选框并单击该行时,我不会重定向到新页面。如果我重新加载页面,然后点击表格行,我会重定向。一个想法,为什么它不工作:我有一个AJAX请求在一个后台执行,然后我点击一个表复选框。我如何解决这个问题? – 2013-04-09 19:55:15

+0

可能需要查看生成的HTML和与该复选框关联的任何其他JavaScript来解决该问题。 – searlea 2013-04-09 20:02:06

+0

这是在选中复选框后(在AJAX事件之后)生成的html代码http://pastebin.com/WY483xmt – 2013-04-09 20:06:08

相关问题