2013-04-09 44 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

相關問題