Tengo algo de código que muestra una de las tablas de la fila cuando algo se hace clic. Así, la fila que tiene el atributo de estilo discapacitados, ver más abajo:

HTML

<tr id='Asset' class='rrtr' style='display:none;'>

El usuario hace clic y se activa el Javascript, que funciona bien:

Javascript

document.getElementById("Asset").style.display = 'block';

Sin embargo, el estilo de la fila no está en línea con el resto aunque los atributos de la clase se ponen a rrtr’ al igual que el resto.

Si me desactivar la función » display:none;’ en la fila y ejecutarlo muestra, el formato está muy bien.

Alguna idea?

InformationsquelleAutor Homer_J | 2012-02-06

4 Comentarios

  1. 7

    Para una mejor compatibilidad, establece

    document.getElementById("Asset").style.display = '';

    Internet Explorer 7 e inferiores no apoyo table-row como un valor para display. Alternativamente– y, posiblemente, una mejor idea es configurar una clase para la fila y eliminar/cambiar el uso de JS:

    <tr id='Asset' class='rrtr rrtr-hidden'>
    <!-- .rrtr-hidden { display: none; } -->
    //Remove class `.rrtr-hidden`
    document.getElementById("Asset").className = 'rrtr';
    • Gracias Andy E – tomó la IE situ en cuenta – saludos. 🙂
  2. 0

    Puedo ocultar y mostrar filas de la tabla mediante la adición/eliminación de un nombre de clase llamado ‘ocultar’. Este enfoque tiene la ventaja de ser capaz de mostrar/ocultar cualquier elemento sin saber, sin preocuparse de lo que su visualización normal es de estilo. Con las filas de la tabla, que probablemente no sea un problema, pero con otros elementos, puede que un día el deseo de cambiar de block a inline por ejemplo. Si utiliza una clase para ocultar elementos, usted no tiene que cambiar su javascript.

    En tu CSS:

    .hide {
       display:none;
    }

    Y en javascript,

    function hasClass(ele, cls) {
        if( ele != null && ele.className != null ) {
          return ele.className.match(new RegExp('(\s|^)' + cls + '(\s|$)'));
        } else {
          return false;
        }
    }
    
    function addClass(ele, cls) {
        if (! hasClass(ele, cls)) {
          ele.className += " " + cls;
        }
    }
    
    function removeClass(ele, cls) {
        if (hasClass(ele, cls)) {
            var reg = new RegExp('(\s|^)' + cls + '(\s|$)');
            ele.className = ele.className.replace(reg, '');
        }
    }

    Que JS vino de alguien ASÍ, pero por desgracia se me olvidó guardar un enlace.

    Para ocultar un elemento addClass( document.getElementById('Asset'), 'hide' ) y removeClass para mostrar.

    EDITAR: me perdí de Andy responder de alguna manera. Se hace esencialmente la misma cosa, sin embargo, estos addClass & removeClass métodos son un poco más robusto que la modificación del elemento.className «manualmente».

Dejar respuesta

Please enter your comment!
Please enter your name here