2010-11-18 22 views
0

Je dois passer un site web de html à xhtml car il faut inclure svg.Ajout d'une ligne dans un tableau dans un document xhtml avec jQuery 1.4.4 et Firefox

Depuis cette modification, je ne peux pas ajouter de ligne dans les tables.

Environnement: Firefox 3.6.12 avec Firebug, jQuery 1.4.4

test Unité:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
$("a.addrowb").click(function(){ 
$("table tbody").append("<tr><td>new row on bottom</td><td></td></tr>"); 
return false; 
}) 
$("a.addrowt").click(function(){ 
$("table tbody").prepend("<tr><td>new row on top</td><td></td></tr>"); 
return false; 
}) 
}) 
</script> 
<title>Untitled Document</title> 
</head> 

<body> 
<a class="addrowb" href="#">Add row In the bottom</a> <a class="addrowt" href="#">Add row In the Top</a> 
<table border="1"> 
<tbody> 
<tr> 
<td>Text 1</td><td>text 2</td> 
</tr> 
</tbody> 
</table> 
</body> 
</html> 
+1

Votre 'a' balises n'ont pas les classes appropriées. Est-ce que ceci pourrait être le problème? – lonesomeday

+0

votre droit, je fixe l'échantillon. mais le problème est toujours ici – mruellan

+1

fonctionne parfaitement pour moi dans tous les navigateurs, pouvez-vous mettre en place une page de test afin que je puisse vérifier? – tbleckert

Répondre

2

Vous devez extérioriser votre JS custom.

par exemple, créer un main.js dans le même dossier que vous avez obtenu votre fichier xhtml et mettre votre code personnalisé dans ce:

$(document).ready(function(){ 
$("a.addrowb").click(function(){ 
$("table tbody").append("<tr><td>new row on bottom</td><td></td></tr>"); 
return false; 
}) 
$("a.addrowt").click(function(){ 
$("table tbody").prepend("<tr><td>new row on top</td><td></td></tr>"); 
return false; 
}) 
}) 

Ensuite, dans votre xhtml, au lieu de

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $("a.addrowb").click(function() { 
      $("table tbody").append("<tr><td>new row on bottom</td><td></td></tr>"); 
      return false; 
     }) 
     $("a.addrowt").click(function() { 
      $("table tbody").prepend("<tr><td>new row on top</td><td></td></tr>"); 
      return false; 
     }) 
    }) 
</script> 

écrire

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="main.js"></script> 
+0

ça marche! Merci! script java intégré est interdit avec xhtml? c'est une mauvaise nouvelle pour moi ... – mruellan

+0

Ce n'est pas interdit mais si vous utilisez FF et Firebug vous pouvez voir l'erreur. Lancez le code de votre question, dans firebug allez dans 'network', le (+) près de votre .xhtml et ensuite l'onglet xml. Vous voyez cela, l'analyseur XML va essayer d'analyser ce qui est dans le javascript qui rend le js ne fonctionne pas. Par conséquent, vous pouvez conclure que 'append' ne fonctionne pas en xhtml pur si vous ajoutez du code xhtml dans js. JS externe ne sera pas analysé par l'analyseur xhtml, donc il fonctionne;) – Shikiryu

+0

@mruellan: Si vous avez d'autres pages avec js incorporé qui n'a pas de code _xhtml_ ou _html_, vous pouvez l'utiliser, sinon, utilisez externe fichier. – Shikiryu