9

Ich versuche, clientseitige bearbeitbare Tabelle zu erstellen. Hier ist mein Code. Es funktioniert in Chrome, Firefox, aber nicht in IE. Gibt es etwas mehr mit Skript für IE zu tun?contenteditable arbeitet nicht in IE 10

<script type="text/javascript"  src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script> 
$(document).ready(function() { 

$("td").click(function(){ 
if($(this).attr("contentEditable") == true){ 
    $(this).attr("contentEditable","false"); 
} else { 
    $(this).attr("contentEditable","true"); 
} 
}) 
}); 
</script> 

<p> 
<table id='transitTable' border="1" cellspacing="2" cellpadding="2" class='display' width="400"> 
<tr id='1'> 
<td >H1</td> 
<td >H2</td> 
<td >H3</td> 
<td >H4</td></tr> 
<tr id='2'> 
<td >R1</td> 
<td >R1</td> 
<td >R1</td> 
<td >R1</td></tr> 
<tr id='3'> 
<td >R2</td> 
<td >R2</td> 
<td >R2</td> 
<td>R2</td></tr></table></p> 

Antwort

12

Es gibt viele Elemente in IE, die nicht contenteditable direkt eingestellt haben können. Sie können jedoch das gesamte table in einen editierbaren Inhalt umwandeln div.

<div contenteditable="true"> 
    <table> 
     ... 
    </table> 
</div> 

Dies wird make all the cells in the table editable. In manchen Browsern (FF) ist die Ansicht aufgrund der angezeigten Bearbeitungsgriffe der Tabelle ein wenig unübersichtlich.

Eine weitere Möglichkeit besteht darin, zum Beispiel einen Inhalt hinzuzufügen, der bearbeitet werden kann span oder div zu jedem td.

+0

dank Teemu. Es funktionierte. :) –

+0

@Teemu: hie. Was, wenn ich die Eingabebox nicht bearbeiten möchte? contenteditable = "false" funktioniert nicht In IE9. Funktioniert gut mit Chrom. – Dharmraj

+0

@Dharraj Sie können zum Beispiel 'readonly =" true "' verwenden. – Teemu

4

IE ist nicht Antwort contenteditable innerhalb td Tag.

können Sie versuchen:

<td id="my-content" class="editable"> 
    <div contentEditable="true" style="width: 100%; height: 100%;"> 
     ... 
    </div> 
</td> 
Verwandte Themen