Выделение результатов быстрого поиска jQuery с вызовом функции onAfter?

Вчера я быстро получил удивительный ответ о ">лучший вариант автозаполнения для того, что мне нужно.

Я думаю, что могу использовать вызов функции onAfter из QuickSearch для вызова плагин SearchHighlight для выделения текста, который я печатаю.

Это осуществимо? Мне трудно заставить его работать.

<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
        <title>rikrikrik - quickSearch jQuery plug-in - List items</title>
        <script src="jquery.js" type="text/javascript" charset="utf-8"></script>
        <script src="jquery.quicksearch.js" type="text/javascript" charset="utf-8"></script>
        <script src='jquery.SearchHighlight.js'></script>
        <script type="text/javascript" charset="utf-8">
            $(document).ready(function () {             
                $('ul#a li').quicksearch({
                    attached: 'ul:first',
                    position: 'before',
                    labelText: 'Search all countries beginning with A',
                    inputText: 'Search',
                    loaderImg: 'loader.gif',
                    loaderText: 'Searching...'
                    onAfter: ('ul#a li').SearchHighlight(partial)

person cornbread    schedule 08.05.2009    source источник


Ответы (1)


Похоже, этот плагин предназначен для работы с регулярным выражением, которое анализирует ключевые слова из URL-адреса реферера. Я не вижу, чтобы вы меняли параметры плагина SearchHighlight, поэтому вы работаете с его конфигурацией по умолчанию. Это означает, что он не знает о вашем текстовом поле поиска и в любом случае не знает, как извлечь из него ключевые слова. Однако похоже, что вы можете использовать параметр keys, чтобы перенастроить его для использования определенных ключевых слов.

Итак, вам нужно изменить свой вызов SearchHighlight на что-то вроде этого:

        $(document).ready(function() {
        $('ul#a li').quicksearch({
        attached: 'ul:first',
        position: 'before',                                
        labelText: 'Search all countries beginning with A',                                
        inputText: 'Search',                                
        loaderImg: 'loader.gif',                                
        loaderText: 'Searching...',
        onAfter: function() { $('ul#a li').SearchHighlight({ exact: "partial", keys: $('.qs_input').val() });
    }); 

где SEARCH_BOX — это идентификатор вашего текстового поля.

EDIT: Ха! Мой синтаксис был далеко. Извини за это. Приведенный выше код должен работать для вас. Кроме того, это может быть не так уж хорошо, потому что нет возможности сбросить выделение при изменении строки поиска.

person samiz    schedule 08.05.2009
comment
Идентификатор по умолчанию для поля поиска — «quicksearch» в соответствии со страницей быстрого поиска. Я подключил это, и все окно поиска исчезло. В поле поиска нет html/element_id. - person cornbread; 08.05.2009
comment
Я исправил код; ваше окно поиска исчезало, потому что то, что я сказал вам сделать, вызвало ошибку javascript. Во всяком случае, окно поиска имеет класс qs_input, поэтому я использовал его. Кажется, это сработало для меня. - person samiz; 09.05.2009
comment
Похоже, это должно сработать. Оставил на работе, попробую в понедельник. Спасибо. Я думаю, что могу найти способ очистить выделенный текст. - person cornbread; 09.05.2009