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();
});
Любая дополнительная информация от более продвинутых разработчиков о том, как сделать это лучше, я весь в ушах. Я надеюсь, что это может однажды помочь другому.:)