Проблема с данными в Jquery с расширением-развалом - PullRequest
0 голосов
/ 03 декабря 2011

У меня есть данные только с одним td, у каждого td есть элемент collapse, на первой странице все в порядке, но на всех других страницах элемент отображается развернутым и не может быть свернут. Насколько я вижу, проблема в том, что вторые / третьи страницы уже скрыты, и когда я вызываю их через таблицу данных, это делает все элементы видимыми, я не мог найти способ обойти это, и любая помощь очень ценится. это ссылка http://86.107.56.8/ и код:

                $(document).ready(function() {
                oTable = $("#example").dataTable({
                    "bJQueryUI": true,
                    "sPaginationType": "full_numbers",
                    "bFilter": true,
                    "bInfo": false,
                    "aaSorting": [[ 2, "asc" ]],
                    "iDisplayLength": 2,
                    "aLengthMenu": [[2, 4, 6], [2, 4, 6]]
                });
            } );

        jQuery(document).ready(function() {
          jQuery(".content").hide();
          //toggle the componenet with class msg_body
          jQuery(".heading").click(function()
          {
            jQuery(this).next(".content").slideToggle(500);
          });
        });

    <div style="width:704px">
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">

    <thead>
        <tr>
            <th width="100px">escala</th>
            <th width="520px">detalii</th>
            <th width="40px">pret</th>
            <th width="4px">valuta</th>
            <th width="40px">buton</th>

        </tr>
    </thead>
    <tbody>
        <tr>
            <td width="60px" align="center"><p>Fara<br />escala</p></td>
            <td width="520px">
                <div class="layer1">
                    <p class="heading"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td align="left" style="background-color:#2f578b;color:fff;">Bucuresti - Baneasa BBU<br /> 24 Dec 06:05</td><td align="right" style="background-color:#2f578b;color:fff;">Roma - Ciampino CIA<br /> 24 Dec 07:10</td></tr></table></p>
                    <div class="content"><p>Detalii zbor</p></div>
                </div>
            </td>
            <td width="40px" align="right">10</td>
            <td width="4px" align="left">&euro;</td>
            <td width="40px" align="right">buton</td>
        </tr>
        <tr>
            <td width="60px" align="center"><p>Fara<br />escala</p></td>
            <td width="520px">
                <div class="layer1">
                    <p class="heading"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td align="left" style="background-color:#2f578b;color:fff;">Bucuresti - Baneasa BBU<br /> 24 Dec 06:05</td><td align="right" style="background-color:#2f578b;color:fff;">Roma - Ciampino CIA<br /> 24 Dec 07:10</td></tr></table></p>
                    <div class="content"><p>Detalii zbor</p></div>
                </div>
            </td>
            <td width="40px" align="right">10</td>
            <td width="4px" align="left">&euro;</td>
            <td width="40px" align="right">buton</td>
        </tr>
        <tr>
            <td width="60px" align="center"><p>Fara<br />escala</p></td>
            <td width="520px">
                <div class="layer1">
                    <p class="heading"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td align="left" style="background-color:#2f578b;color:fff;">Bucuresti - Baneasa BBU<br /> 24 Dec 06:05</td><td align="right" style="background-color:#2f578b;color:fff;">Roma - Ciampino CIA<br /> 24 Dec 07:10</td></tr></table></p>
                    <div class="content"><p>Detalii zbor</p></div>
                </div>
            </td>
            <td width="40px" align="right">10</td>
            <td width="4px" align="left">&euro;</td>
            <td width="40px" align="right">buton</td>
        </tr>
        <tr>
            <td width="60px" align="center"><p>Fara<br />escala</p></td>
            <td width="520px">
                <div class="layer1">
                    <p class="heading"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td align="left" style="background-color:#2f578b;color:fff;">Bucuresti - Baneasa BBU<br /> 24 Dec 06:05</td><td align="right" style="background-color:#2f578b;color:fff;">Roma - Ciampino CIA<br /> 24 Dec 07:10</td></tr></table></p>
                    <div class="content"><p>Detalii zbor</p></div>
                </div>
            </td>
            <td width="40px" align="right">10</td>
            <td width="4px" align="left">&euro;</td>
            <td width="40px" align="right">buton</td>
        </tr>
        <tr>
            <td width="60px" align="center"><p>Fara<br />escala</p></td>
            <td width="520px">
                <div class="layer1">
                    <p class="heading"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td align="left" style="background-color:#2f578b;color:fff;">Bucuresti - Baneasa BBU<br /> 24 Dec 06:05</td><td align="right" style="background-color:#2f578b;color:fff;">Roma - Ciampino CIA<br /> 24 Dec 07:10</td></tr></table></p>
                    <div class="content"><p>Detalii zbor</p></div>
                </div>
            </td>
            <td width="40px" align="right">10</td>
            <td width="4px" align="left">&euro;</td>
            <td width="40px" align="right">buton</td>
        </tr>
        <tr>
            <td width="60px" align="center"><p>Fara<br />escala</p></td>
            <td width="520px">
                <div class="layer1">
                    <p class="heading"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td align="left" style="background-color:#2f578b;color:fff;">Bucuresti - Baneasa BBU<br /> 24 Dec 06:05</td><td align="right" style="background-color:#2f578b;color:fff;">Roma - Ciampino CIA<br /> 24 Dec 07:10</td></tr></table></p>
                    <div class="content"><p>Detalii zbor</p></div>
                </div>
            </td>
            <td width="40px" align="right">10</td>
            <td width="4px" align="left">&euro;</td>
            <td width="40px" align="right">buton</td>
        </tr>
    </tbody>
</table>
</div>

Ответы [ 2 ]

0 голосов
/ 04 декабря 2011

Не могу сказать точно, поскольку предоставленная ссылка больше не ведет на страницу DataTable.

Полагаю, проблема в следующем: вы одновременно скрываете и привязываете щелчок в функции готовности документа. Это означает, что он запускается ОДИН РАЗ, когда документ готов. Эти функции больше не вызываются.

Мне нужно больше времени, чтобы взглянуть на код, чтобы лучше понять, какие элементы скрыть, но в целом, что вам нужно сделать, это вставить скрывающую функцию в собственную инициализацию fnDrawCallback плагина функция обратного вызова. Тем не менее, я на самом деле не уверен, что это лучше всего скрыть с помощью jQuery. Опять же, мне придется больше копаться в примере кода.

Что касается клика, таблица перерисовывается при переходе на следующую страницу. Если вы используете jQuery 1.7+, вы должны использовать функцию привязки событий .on() вместо .click(). Этот может остаться в функции готовности документа. Однако вы собираетесь выбрать и назначить другого слушателя, нежели .heading(). И для этого мы тоже немного изменим HTML:

HTML:

<div class="tableWrapper" style="width:740px"> <!-- you should not have inline styles; you can add width to the new tableWrapper class -->
  <table> ... etc ... </table>
</div>

JS:

jQuery(".tableWrapper").on('click', '.heading', function()
    {
      jQuery(this).next(".content").slideToggle(500);
    });
});

Примечание: я думаю, что вы не можете ничего пропустить (void) в .next(), так как вам нужен первый из следующих братьев и сестер. Я должен был проверить документы.

0 голосов
/ 03 декабря 2011

Попробуйте этот код $(this).next().slideToggle(500); (без селектора в следующей функции)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...