jQuery find () работает в IE, но не в Chrome или Firefox - PullRequest
3 голосов
/ 27 декабря 2010

Я настраиваю пользовательское textExtraction для элемента управления tableQ плагина jQuery (что, вероятно, не имеет значения), и сортировка работает в IE, но не в Chrome или Firefox. Вот фрагмент кода JavaScript:

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

Узел - это <td> (я верю). В некоторых клетках есть изображение, а в других нет. Так что, по сути, этот столбец должен сортироваться по 0/1. Все остальные столбцы сортируются очень хорошо (за исключением 5-го столбца, который, как вы можете видеть, не сортируется).

Вот фрагмент HTML, на который действует сортировка (2 строки):

<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>

Есть идеи, почему это не сработает в Chrome или Firefox?

1 Ответ

1 голос
/ 24 февраля 2011

Я не думаю, что вы можете поместить функцию textextraction в опцию заголовка.

Когда я кодировал пример, подобный вашему, у меня было это, и оно работало:

 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 }   
    }     
} );  
...