2014-05-13 32 views
0

我有一個HTML表。它顯示來自數據庫的數據。 7欄。(其中一個是複選框)'單擊某行時重定向到頁面時出現錯誤,單擊複選框時啓用按鈕'。

表外有一個按鈕。 刪除用戶按鈕最初被禁用。

<a id="deleteuser" class="btn btn-danger btn-sm disabled" ><i class="fa fa-trash-o"></i> Delete users</a> 

當點擊複選框時,它被啓用。 我複選框

<input type="checkbox" name="chk" id="chk> 

jQuery的啓用/禁用按鈕:

$(function(){ 
var button=$('#deleteuser'); 
button.attr('disabled','disabled'); 
$('#chk').change(function(e){ 
if(this.checked){ 
button.removeAttr('disabled'); 
} else { 
button.attr('disabled','disabled'); 
} 
}); 
}); 

它的罰款至今。現在我必須爲此表添加更多功能。當單擊任何行時,該行的內容必須重定向到另一個頁面,以便我可以修改該數據。

爲了使表可點擊的,我用這個CSS

<style> 
    table, table tr, table tr td { cursor: pointer;} 
</style> 

以及編輯特定的行,我重定向行的內容(基於用戶ID)到另一個頁面。腳本我用:

$(document).ready(function(){ 
$('table.table tr').click(function() { 

     window.location='edituserdata.php' 
    }); 

}); 

----------的問題--------------

現在,當我點擊一個排,我被重定向到edituserdata.php(即使當我點擊複選框時也是如此())。我想要啓用刪除用戶按鈕,當我點擊一個複選框重定向到另一個頁面,當我點擊該行中的任何其他列。我錯了某個地方......無法弄清楚。 任何人都可以幫忙?兩者都有效,但不能一起工作。

的jsfiddle:

http://jsfiddle.net/iamsajeev/8eMDG/

回答

0

您可以通過檢查目標節點名稱 檢查該行的目標click事件,並防止進一步的任務,如果它是一個錨。您也可以選中複選框。

$('table.table tr').click(function (ev) { 
    if(ev.target.nodeName.toLowerCase() == "a") return; 
    if(ev.target.nodeName.toLowerCase() == "input")return; 
}); 

我相信你也可以用is來檢查元素。

$('table.table tr').click(function (ev) { 
    if($(ev.target).is("a")) return; 
    if($(ev.target).is("input[type=checkbox]"))return; 
}); 

Fiddle

+0

沒有產生很好的效果。 –

+0

不要忘記通過事件,在功能ev。如果你通過了,這沒有什麼錯。 – besabestin

+0

對不起哥哥。正如你所說,我通過了活動。它沒有解決。 –

相關問題