2009-07-20 6 views
3

Je dois ajouter du contenu HTML (images, étiquettes, etc.) au-dessus d'une cellule de tableau contenant une zone de texte. Il y aura au moins 10 lignes par page avec 8 colonnes dans chaque rangée. Les 8 colonnes contiennent une zone de texte.Ajouter un élément au-dessus de la zone de texte sans modifier la position de la zone de texte

J'ai déjà assemblé quelques jQuery qui montreront et cacheront cette nouvelle zone de contenu au-dessus de la cellule du tableau, mais le CSS n'est pas correct et les boîtes de saisie sont poussées vers le bas ... La zone de contenu que je suis se référant à est le DIV étant ajouté par le plugin jQuery avec la classe inputbanner.

CSS

.inputbanner 
{ 
    background-color: Orange; 
    position: absolute; 
    top: -20px; 
    display: none; 
} 

HTML

<tr> 
    <td class="itemdescr"> 
     SWR: 1123 My Biggest Project 
    </td> 
    <td> 
     <input type="text" maxlength="2" class="timebox" /> 
    </td> 
    <td> 
     <input type="text" maxlength="2" class="timebox"/> 
    </td> 
    <td> 
     <input type="text" maxlength="2" class="timebox"/> 
    </td> 
    <td> 
     <input type="text" maxlength="2" class="timebox"/> 
    </td> 
    <td> 
     <input type="text" maxlength="2" class="timebox"/> 
    </td> 
    <td> 
     <input type="text" maxlength="2" class="timebox"/> 
    </td> 
    <td> 
     <input type="text" maxlength="2" class="timebox"/> 
    </td> 
</tr> 
<script language="javascript"> 
    $().ready(function() { 
     $('.timebox').inputmenu(); 
    }); 
</script> 

jQuery Fonction

(function($) { 
    $.fn.inputmenu = function() { 
     function createInputMenu(node) { 
      $(node).bind('focus', function() { 
       $(this).parent().toggleClass('highlight'); 
       $(this).prev('div.inputbanner').toggle(); 
      }); 
      $(node).bind('blur', function() { 
       $(this).parent().toggleClass('highlight'); 
       $(this).prev('div.inputbanner').toggle(); 
      }); 
      $(node).parent().prepend('<div class="inputbanner"><img src="../../Content/Images/arrow_left_active.gif" />&nbsp<img src="../../Content/Images/arrow_left_inactive.gif" /></div>'); 
     } 
     return this.each(function() { 
      createInputMenu(this); 
     }); 
    } 
})(jQuery); 

Répondre

2
+0

Permettez-moi d'ajouter aussi vous pouvez toujours vous en sortir avec mettre un DIV dans chaque cellule avec un écran: caché ; position: relative; haut: -20px; ... puis mettez dans les graphiques. Lorsque vous voulez les montrer à afficher en utilisant jQuery. –

+0

Cela pourrait être plus approprié à la réponse que certains des autres éléments ici ... – RSolberg

Questions connexes