Resig Live Search Redux для JQuery 1,7 и выше?

Недавно я обнаружил, что Resig jQuery переписывает Quicksilver Live Search, и мне нравится его работа... но я пытаюсь обновить его, чтобы он работал с новым обработчиком событий.on(). Однако мои способности (или их отсутствие) подводят меня.

Я думаю, что мне нужно отредактировать this.keyup (фильтр)... но я ничего не получаю. Есть идеи?

Обновление: просто пояснение. Мои мысли о желании обновить скрипт - принимать элементы списка, введенные динамически. Все работает нормально, пока это статический список, но так как я представил список, созданный с помощью вызова ajax, он не работает. Я собираюсь сделать макет скрипки и связать это здесь в ближайшее время. Между тем, если кто-нибудь сможет мне помочь, это спасет мою шкуру. Благодарю.

jQuery.fn.liveUpdate = function(list){
    list = jQuery(list);

    if ( list.length ) {
    var rows = list.children('li'),
        cache = rows.map(function(){
        //return this.innerHTML.toLowerCase();
        return $('a', this)[0].innerHTML.toLowerCase();
        });

    this
        .keyup(filter).keyup()
        .parents('form').submit(function(){
            return false;
        });

    }

    return this;

    function filter(){
        var term = jQuery.trim( jQuery(this).val().toLowerCase() ), scores = [];

        if ( !term ) {
            rows.show();
        } else {
            rows.hide();

            cache.each(function(i){
                var score = this.score(term);
                if (score > 0) { scores.push([score, i]); }
            });

            jQuery.each(scores.sort(function(a, b){return b[0] - a[0];}), function(){
                jQuery(rows[ this[1] ]).show();
            });
        }
    }
};

1 ответ

Так что я случайно наткнулся на этот пост, который с помощью JFK суммировал то, что я искал. Я хотел, чтобы скрипт запускался после создания динамического контента, когда я должен был вызвать скрипт, когда пользователь хочет выполнить поиск.

$('#staticParent').on("click", "#searchField", function(){
    $(this).livesearch("#dynamicElements").focus();
});

Любая дополнительная информация от более продвинутых разработчиков о том, как сделать это лучше, я весь в ушах. Я надеюсь, что это может однажды помочь другому.:)

Другие вопросы по тегам