2009-07-20 8 views
3

Ich muss HTML-Inhalt (Bilder, Beschriftungen usw.) oberhalb einer Tabellenzelle hinzufügen, die ein Textfeld enthält. Es wird mindestens 10 Zeilen pro Seite mit 8 Spalten in jeder Zeile geben. Alle 8 Spalten enthalten ein Textfeld.Hinzufügen div über Textfeld, ohne Position des Textfelds zu ändern

Ich habe bereits einige jQuery zusammengestellt, die diesen neuen Inhaltsbereich über der Tabellenzelle anzeigen und ausblenden, aber das CSS ist nicht korrekt und die Eingabefelder werden nach unten geschoben ... Der Inhaltsbereich, der ich bin Bezug nehmend auf ist der DIV, der durch das jQuery-Plugin mit der Inputbanner-Klasse hinzugefügt wird.

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 Funktion

(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); 

Antwort

2
+0

Lassen Sie mich auch mit dem Setzen eines DIV in jeder Zelle mit einem Display immer weg bekommen könnte hinzufügen: versteckt ; Position: relativ; oben: -20px; ... dann die Grafiken einfügen. Wenn Sie möchten, dass sie mit jQuery angezeigt werden. –

+0

Das könnte für die Antwort geeigneter sein als einige der anderen Artikel hier ... – RSolberg