2010-12-26 6 views
3

Je suis en train de configurer textExtraction pour le contrôle de plugins jQuery plugins (ce qui est probablement hors de propos) et le tri fonctionne dans IE, mais pas Chrome ou Firefox. Voici un extrait du code JavaScript:jQuery find() fonctionne dans IE, mais pas Chrome ou Firefox

var searchResultsTables = $("table.FilterClass"); 

    searchResultsTables.tablesorter({ 
     widgets: ['zebra'], 
     widgetZebra: { css: ["Odd", "Even"] }, 
     headers: 
     { 
      3: { textExtraction: function (node) 
      { 
       return $(node).find("img").length; 
      } 
      }, 
      4: { sorter: false } 
     } 
    } 
    ); 

nœud est le <td> (je crois). Certaines cellules ont une image en eux et d'autres pas. Donc, fondamentalement, cette colonne devrait trier en fonction de 0/1. Toutes les autres colonnes trient très bien (à l'exception de la 5ème colonne, qui, comme vous pouvez le voir, est configurée pour ne pas être triable).

Voici un peu de html sur lequel le tri est action (2 lignes):

<table class="SearchResultsTable FilterClass tablesorter"> 
    <tr class="Odd"> 
     <td class="SearchResultsCell RightBrownBorder NameCell"> 
     <a href="/Candidate/2">Bill Clinton</a></td> 
     <td class="SearchResultsCell RightBrownBorder PartyCell">Democrat</td> 
     <td class="SearchResultsCell RightBrownBorder DistrictCell"></td> 
     <td class="SearchResultsCell RightBrownBorder IncumbentCell"> 
      <img src="/Images/green_check_mark.gif" /> 
     </td> 
     <td class="SearchResultsCell PoliticalSpectrumIndexCell"></td> 
    </tr> 
    <tr class="Even"> 
     <td class="SearchResultsCell RightBrownBorder NameCell"> 
     <a href="/Candidate/13">Newt Gingrich</a></td> 
     <td class="SearchResultsCell RightBrownBorder PartyCell" title="Party for Socialism and Liberation">Party for...</td> 
     <td class="SearchResultsCell RightBrownBorder DistrictCell"></td> 
     <td class="SearchResultsCell RightBrownBorder IncumbentCell"></td> 
     <td class="SearchResultsCell PoliticalSpectrumIndexCell"></td> 
    </tr> 

Toutes les idées pourquoi cela ne fonctionnerait pas dans Chrome ou Firefox?

+2

qui fonctionnerait dans un navigateur, si votre hypothèse que « nœud » est un élément '' est correct. Bien sûr, il est difficile de dire quel pourrait être le problème sans voir plus de code ou une description plus complète du problème. – Pointy

+0

Est-ce le code exact? Y compris le '3:'? – lonesomeday

+0

mais si vous avez 2 ou plus 'img' dans le' td' ... Cela retournerait '2', au lieu d'un' 0' ou '1' – jerone

Répondre

1

Je ne pense pas que vous pouvez mettre une fonction texteextraction dans l'option d'en-tête.

Quand je codé un exemple comme la vôtre, j'ai eu cela, et cela a fonctionné:

var searchResultsTables = $("table.FilterClass");   

searchResultsTables.tablesorter({   
    widgets: ['zebra'],   
    widgetZebra: { css: ["Odd", "Even"] }, 
    textExtraction: function (node)    
     {  
      if (node.cellIndex == 3) 
      { 
       return $(node).find("img").length; 
      } 
      else 
      { 
       return node.innerHTML 
      }   
     } 
    headers:   
    {       
     4: { sorter: false } 
    }  
}); 
Questions connexes