jQuery TinyTable在使用新的表结构调整大小时会被破坏

时间:2014-11-17 13:11:43

标签: javascript php jquery html css

这是我第一次询问,如果我的询问方式有问题,我会事先道歉。

嗯,事情如下: 我正在做一个表的响应式设计。这张表是用tinytable完成的。 所以这里的问题是每当我为响应式设计调整表的大小时,它会破坏tinytable的所有功能(无法搜索等) - picture of the table with responsive design new structure and broken tinytable functionality -

我正在使用javascript调整表格,并使用以下代码(我希望它可以提供帮助):

/**
*This .js splits/rezises a table given into a desiderable structure
*/

/**
*Function that splits rows according to what you need
*/
function splitRow(rowOrig, tam_row, tam_col, col1, col2) {
var row = rowOrig.clone();
var cell = row.find('td');

/**
 *Setting mode of the table's rows by default to 'simple'
 */
rowOrig.attr({
    "modo": 'simple'
});


/**
 * New rows with the new structure
 */
var tr1 = new jQuery("<tr/>", {"modo": 'doble'});
var tr2 = new jQuery("<tr/>", {"modo": 'doble'});

/**
 *Modifying columns that are required
 */
//Date Column
var cellToModify1 = new jQuery("<td/>", {"rowspan": tam_row});
var cellAux2 = jQuery(cell.get(col1 - 1));
cellToModify1.append(cellAux2.contents());
tr1.append(cellToModify1);


//Details Column
var cellToModify2 = new jQuery("<td/>", {"colspan": tam_col});
var cellAux3 = jQuery(cell.get(col2 - 1));
cellToModify2.append(cellAux3.contents());
tr1.append(cellToModify2);


/**
 *Removing columns not needed
 */
cell.splice(col1 - 1, 1);
cell.splice(col2 - 2, 1);


/**
 *Adding content of the rest of the columns
 */
for (var j = 0; j < cell.length; j++) {
    var cell_aux = jQuery(cell.get(j));
    var cell_td = new jQuery("<td/>", {});

    cell_td.append(cell_aux.contents());
    tr2.append(cell_td);
}

/**
 *Replacing rows
 */
tr1.insertAfter(rowOrig);
tr2.insertAfter(tr1);
}

function partir(){
var modoDoble = jQuery("#cabLineasCaja tr[modo='doble']:visible").length > 0;
if (modoDoble) {
    jQuery(window).unbind("resize", partir);
    var nColumns = jQuery('#bodyRowsCaja tr:first td').length;
    jQuery('#bodyRowsCaja tr').each(function(i, rRow) {
        splitRow(jQuery(rRow), 2, nColumns - 2, 1, 6);
    });
 }
}

/**
* Documento cargado/Document loaded
*/
jQuery(document).ready(function() {
   jQuery(window).bind("resize", partir);
   partir();

});

html就是这样:

<div id="tablacaja" colspan="2">
                <table border="0" cellpadding="0" cellspacing="0" class="tinytable" id="tCaja">
                    <thead id="cabLineasCaja">
                        <tr modo="simple">
                            <th><h3><?php echo _("Fecha") ?></h3></th>
                            <th><h3><?php echo _("Tipo") ?></h3></th>
                            <th><h3><?php echo _("Forma") ?></h3></th>
                            <th><h3><?php echo _("Nº Fac.") ?></h3></th>
                            <th><h3><?php echo _("Nº Rec.") ?></h3></th>
                            <th><h3><?php echo _("Detalles") ?></h3></th>
                            <th><h3><?php echo _("Importe") ?></h3></th>
                            <th><h3><?php echo _("Acciones") ?></h3></th>
                        </tr>
                            <tr modo="doble">
                                 <th rowspan="2"><h3><?php echo _("Fecha") ?></h3></th>
                                 <th colspan="6"><h3><?php echo _("Detalles") ?></h3></th>
                            </tr>
                            <tr modo="doble">
                                <th><h3><?php echo _("Tipo") ?></h3></th>
                                <th><h3><?php echo _("Forma") ?></h3></th>
                                <th><h3><?php echo _("Nº Fac.") ?></h3></th>
                                <th><h3><?php echo _("Nº Rec.") ?></h3></th>
                                <th><h3><?php echo _("Importe") ?></h3></th>
                                <th><h3><?php echo _("Acciones") ?></h3></th>
                            </tr>
                    </thead>
                <tbody id="bodyRowsCaja">
                    <?php
                    $formas = explode("@", $forma);
                    $formaBusqueda = $formas[0];
                    if($formas[1]){
                    $idListadoBusqueda = $formas[1];
                    }else{
                       $idListadoBusqueda = 0;
                    }
                    $lista = $capunte->listarApuntes($uActual->getIdEmpresa(), $fini, $ffin, $tipo, $formaBusqueda, -1, $filtroUsuario, $idListadoBusqueda);
                    $total_efectivo = 0;
                    $total_tarjeta = 0;
                    $total_talon = 0;
                    $gastos_efectivo = 0;
                    $gastos_tarjeta = 0;
                    $gastos_talon = 0;

                    if (!$lista) {
                        ?>
                            <td  >&nbsp;</td>
                            <td  >&nbsp;</td>
                            <td  >&nbsp;</td>
                            <td  >&nbsp;</td>
                            <td  >&nbsp;</td>
                            <td id="detallesColumn" >&nbsp;</td>
                            <td  >&nbsp;</td>
                            <td id="hideColumn">&nbsp;</td>
                        <?php
                    } else {
                        $cuenta = 0;
                        foreach ($lista as $apunte) {

                            if ($agenda < 0 || ($agenda == 0 && $apunte->getIdAgenda() <= 0 ) || ($agenda > 0 && $apunte->getIdAgenda() == $agenda )) {

                                $cuenta++;
                                if ($apunte->getTipo() == 1 && $apunte->getForma() == 1) {
                                    $total_efectivo += $apunte->getImporte();
                                }
                                if ($apunte->getTipo() == 1 && $apunte->getForma() == 2) {
                                    $total_tarjeta += $apunte->getImporte();
                                }
                                if ($apunte->getTipo() == 1 && $apunte->getForma() == 3) {
                                    $total_talon += $apunte->getImporte();
                                }
                                if ($apunte->getTipo() == 2 && $apunte->getForma() == 1) {
                                    $gastos_efectivo += $apunte->getImporte();
                                }
                                if ($apunte->getTipo() == 2 && $apunte->getForma() == 2) {
                                    $gastos_tarjeta += $apunte->getImporte();
                                }
                                if ($apunte->getTipo() == 2 && $apunte->getForma() == 3) {
                                    $gastos_talon += $apunte->getImporte();
                                }
                                ?>  
                                <tr>

                                    <td  ><?php echo $apunte->getFechaInterfaz(); ?></td>
                                    <td  ><?php
                                        switch ($apunte->getTipo()) {
                                            case 0: echo _("Anulado");
                                                break;
                                            case 1: echo _("Ingreso");
                                                break;
                                            case 2: echo _("Gasto");
                                                break;
                                        }
                                        ?></td>
                                    <td  ><?php
                                        switch ($apunte->getForma()) {
                                            case 1: echo _("Efectivo");
                                                break;
                                            case 2: echo _("Tarjeta");
                                                break;
                                            case 3:
                                                if ($apunte->getIdListado() > 0) {
                                                    $tipoList = $clistado->obtenerListado($apunte->getIdListado(), $uActual->getIdEmpresa());
                                                    if ($tipoList && $tipoList->getId() > 0) {
                                                        echo $tipoList->getValor()."*";
                                                    } else {
                                                        echo _("Talón/Transf.");
                                                    }
                                                } else {
                                                    echo _("Talón/Transf.");
                                                }
                                                break;
                                        }
                                        ?></td>               
                                    <td  ><?php
                                        if ($apunte->getIdFactura() > 0)
                                            echo '<a href="./facturas-ficha.php?ficha=' . $apunte->getIdFactura() . '">' . '<span style="color:#0000FF;">';
                                        $factura = $apunte->getNFactura();
                                        if ($apunte->getTipoApunte() == 3) {
                                            if ($apunte->getidContacto() == -1)
                                                echo '<a href="./caja-provee-av.php?ficha=' . $apunte->getId() . '">' . '<span style="color:#0000FF;">';
                                            else
                                                echo '<a href="./caja-provee.php?ficha=' . $apunte->getId() . '">' . '<span style="color:#0000FF;">';
                                        }else
                                        if ($cfactura->isCIF($uActual->getIdEmpresa(), 1)) {
                                            if ($apunte->getIdFactura() > 0) {
                                                $fac = new Factura();
                                                $fac = $cfactura->obtenerFactura($apunte->getIdFactura(), $uActual->getIdEmpresa());
                                                if ($fac->getIdRosa() != 0)
                                                    $factura = "CIF2/" . $factura;
                                            }
                                        }
                                        echo $factura;
                                        if ($apunte->getIdFactura() > 0 || ($apunte->getTipoApunte() == 3 && $apunte->getTipo() == 2))
                                            echo '</span>' . '</a>';
                                        ?>
                                        &nbsp;</td>
                                    <td  ><?php
                                        if ($apunte->getIdRecibo() > 0)
                                            echo '<a href="./facturas-ficha.php?ficha=' . $apunte->getIdRecibo() . '">' . '<span style="color:#0000FF;">';
                                        $recibo = $apunte->getNRecibo();
                                        if ($cfactura->isCIF($uActual->getIdEmpresa(), 1)) {
                                            if ($apunte->getIdRecibo() > 0) {
                                                $rec = new Factura();
                                                $rec = $cfactura->obtenerFactura($apunte->getIdRecibo(), $uActual->getIdEmpresa());
                                                if ($rec->getIdRosa() != 0)
                                                    $recibo = "CIF2/" . $recibo;
                                            }
                                        }
                                        echo $recibo;
                                        if ($apunte->getIdRecibo() > 0)
                                            echo '</span>' . '</a>';
                                        ?>&nbsp;</td>
                                    <td id="hideDetalles">
                                                <?php
                                        echo $apunte->getDetalles();
                                        if ($apunte->getIdAgenda() > 0) {
                                            $ag = $cagenda->obtenerAgenda($apunte->getIdAgenda(), $uActual->getIdEmpresa());
                                            echo "<br />" . _("AGENDA") . ": " . $ag->getNombreAgenda();
                                        }
                                        ?></td>
                                    <td  ><?php echo $apunte->getImporte(); ?></td>

                                    <td ><div class="centro"> 

                                            <?php
                                            if ($apunte->getTipo() > 0) {

                                                if ($apunte->getIdFactura() == "" || $apunte->getIdFactura() <= 0) {
                                                    ?>
                                                    <a onclick="abrirDialogo(<?php echo $apunte->getId() ?>)"  title="Anular" target="demo-frame"  class="acciones"><img src="_dt/img/acciones/delete.png" alt="Anular" title="Anular" width="20" height="20"  /></a>

                                                    <?php
                                                }
                                            }
                                            ?>
                                        </div></td>
                                </tr>
                                <?php
                            }
                        }
                        if ($cuenta <= 0)
                            echo '<td  >&nbsp;</td>
          <td  >&nbsp;</td>
          <td  >&nbsp;</td>
          <td  >&nbsp;</td>
          <td  >&nbsp;</td>
          <td  >&nbsp;</td>
          <td  >0</td>
          <td  >&nbsp;</td>';
                    }
                    ?>
                </tbody>

在css中,我基本上用它来控制它(它有更多的代码,但我认为不需要放入所有代码):

tr[modo='simple']
{
    display:none;
}

tr[modo='doble']
{
    display:table-row;
}

我想找到的是关于如何解决这个问题的一些想法。 我想过可能从微型表中获取信息并将其转移到另一个表中。一个正常的,能够按我想要的方式调整大小。

提前致谢!

祝你好运

0 个答案:

没有答案