2010-06-11 5 views
0

J'ai un problème wuth firefox n'affiche pas le style "text-decoration: line-through". J'utilise jqGrid pour afficher la liste des médicaments.Problème jqgrid, firefox et css-text-decoration

Si le médicament n'est pas actif, il doit être croisé. Dans mon cas afterInsertRow je fais ceci:

$('#' + rowid).css({ 'text-decoration': 'line-through', 'color': 'red' }) 

Il fonctionne très bien pour IE et Chrome, mais Firefox affiche uniquement le texte en rouge sans ligne de passage. Quand je regarde dans la sortie de firebug, je peux voir que l'élément a la définition de style comprenant la décoration de texte, mais il ne montre tout simplement pas la manière dont j'ai besoin. Toute aide est appréciée. Merci

Répondre

4

Si vous modifiez votre code pour

$('#' + ids[1] + " > td").css(
    { 'text-decoration': 'line-through', 'color': 'red' }); 

si la volonté fonctionne. Si vous utilisez rownumbers: true et ne veulent pas le numéro de ligne être biffés, vous pouvez utiliser

$('#' + ids[1] + " > td:not(.jqgrid-rownum)").css(
    { 'text-decoration': 'line-through', 'color': 'red' }); 

Une plus petite recommandation: utiliser gridview: true pour remplir jqGrid plus rapidement. Dans ce mode, toute la table contenant sera remplie par jqGrid en tant que siring et sera insérée avec une opération jQurey.append. L'utilisation de l'événement afterInsertRow enfreint la règle, car chaque ligne sera insérée avec une opération jQurey.append, puis sera appelée afterInsertRow. Donc, ma recommandation: utiliser gridview: true et ne pas utiliser afterInsertRow. Pour effectuer des changements de css utilisent loadComplete ou gridComplete à la place comme:

jQuery('#list').jqGrid({ 
    //... 
    loadComplete: function() { 
     var ids = jQuery('#list').getDataIDs(); 
     for (var i = 0; i < ids.length; i++) { 
      $('#' + ids[i] + ' > td:not(.jqgrid-rownum)').css(
       { 'text-decoration': 'line-through', 'color': 'red' }); 
     } 
    } 
    // ... 
}); 
+0

merci pour votre réponse détaillée. la raison pour laquelle j'utilise afterInsertRow est que mon jeu de résultats n'est pas si grand, et il ne tiendra pas plus de 20-25 enregistrements, donc je n'ai pas à m'inquiéter de la vitesse de chargement. – Alex