2011-09-23 55 views
5

我設法讓我的表中的行可點擊並鏈接到href中。但是,當我選擇只選擇除最後一列之外的行時,我開始遇到問題。jquery使行可點擊除最後一列

隨着下面的代碼可點擊行只對除了最後一個單元格整行積極而這正是我需要爲我在這個小區的管理鏈接(鏈接激活,編輯,刪除等行)。唯一的問題是,無論您點擊哪一行,都會將您發送到最上面一行的鏈接。我認爲這與我的選擇器('td a')有關,但我無法弄清楚。

$('#dataTable tr td:not(:last-child)').click(function() { 
location.href = $('#dataTable tr').find('td a').attr('href'); 
}); 

懸停效果很好,只有當鼠標懸停在除最後一列以外的任何單元格上時纔會更改指針。

$('#dataTable tr td:not(:last-child)').hover(function() { 
$(this).css('cursor','pointer'); 
    }, function() { 
    $(this).css('cursor','auto'); 
}); 

回答

10

這是因爲你所得到的表中的所有TR的,然後被發現將被返回的第一個錨,嘗試改變它像這樣:

$('#dataTable tr td:not(:last-child)').click(function() { 
location.href = $(this).parent().find('td a').attr('href'); 
}); 

它的意思是它會將點擊元素$(this)作爲一個jquery對象,然後轉到其父項。 (行元素)。

+0

非常感謝。我一直試圖讓這個工作整夜。我是jquery的新手,並且認爲我抓住了所有的tr,我無法弄清楚如何改變它。再次感謝! – Andrew

1
$('#dataTable tr td:not(:last-child)').click(function() { 
location.href = $(this).parent().find('td a').attr('href'); 
}); 

我認爲這應該工作。你的代碼總是從你在dataTable中發現的第一個「td a」中獲得href。這段代碼需要它在你正在尋找的特定td中找到的a。