Autor Zpráva
benett
Profil
Mám tabulku, u které se po kliknutí na řádek zobrazí více dat, která jsou stránkovaná. Vše funguje, akorát se ta další data zobrazí až poté, co kliknu na stránkovací odkaz. Jak docílit toho, aby se hned po kliknutí na řádek zobrazila ta data (jako když teď kliknu na odkaz "1")?

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <link rel="stylesheet" href="tab.css">
  <script src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
  <script src="tab.js"></script>
</head>
<body>
<table><tr><th>Text</th><th>A</th><th>B</th><th>C</th></tr><tr><td>blabla</a></td><td>8</td><td>1</td><td>2</td></tr><tr id="det123" class="hide"><td colspan="5"><a>1</a> </td></tr></table></body></html>

//tab.css
.hide{display: none}
.show{display: table-row}

//tab.js
$(document).ready(function(){
    var max = 10;
    var j = 0;
    var dat = new Object();
    var text='blabla';
    $('table').on('click', '[id^=det] a', function(){
        j =    $(this).text() * 1;
        var text = $(this).parent().parent().prev().children('td:nth-child(2)').text();
        text = text.substring(text.lastIndexOf(' ') + 1);
        var id = $(this).parent().parent().attr('id');
        $(this).parent().parent().nextUntil('tr:not(.hide)').hide();
        dat[text] = ( typeof dat[text] != 'undefined' && dat[text] instanceof Object ) ? dat[text] : {};
        dat[text][1] = {'a': '1234', 'b': '7987'};
        dat[text][2] = {'a': '798', 'b': '465'};
        for(var i = j + max; i > j; i --){
            if(!(dat[text][i] === undefined || dat[text][i] === null)) $('#'+ id).after('<tr class="hide show"><td colspan="4">'+ dat[text][i].a  +', '+ dat[text][i].b +'</td></tr>');
        }
    });

    $('table').on('click', 'tr:not(.hide)', function(e){            
        $(this).nextUntil('tr:not(.hide)').toggleClass('show');
    });
});

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0