joequery/Stupid-Table-Plugin

Wrong behavior when stupid_table is inside an other table (bug)

Opened this issue · 3 comments

Hi,
very useful and light script.

I think I've found a bug when a stupid table is inside an other table. Sorting by other columns except the first fails.

The bug is where the code compute th_index, because parents() get the outer tr (of the outer table).

I fixed it in this way:

    // Account for colspans
$this_th.parents("tr").find("th").slice(0, $(this).index()).each(function() {

should read

    // Account for colspans
$this_th.parent("tr").find("th").slice(0, $(this).index()).each(function() {

If you agree please update the repo, thank you.

Is <tr> always a parent of <th> ? I don't remember whether it's valid to have another element in between.

Either way, another solution would be to use .closest("tr") so that we only select the first <tr> we come to.

Is stupidtable being called on the outer table or the inner table in your example here? Would you happen to have a testcase demonstrating the issue?

Sorry for the late in the answer.
It's called on the inner table.
Sorry but I don't have a quick test case to show.