2013-12-13 3 views
1

Я застрял на этом в течение последних полутора дней. Я пытаюсь получить фильтр в реальном времени, добавленный для моей таблицы html (которая генерируется с помощью PHP-скрипта для импорта CSV-файла в стандартную разметку html). Я основывал свой код на следующей демо http://jsfiddle.net/7BUmG/2/, которую я нашел от How to perform a real time search and filter on a HTML table.Столовый фильтр не работает

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

<script> 
$(document).ready(function() { 
// My javascript 
}); 
</script> 

и

<script> 
$(document).on('pageinit') { 
// My javascript 
}); 
</script> 

, а также просто обычная функция тег

<script> 
$(function(){ 
// My javascript 
}); 
</script> 

Кто-нибудь знает, как получить этот JS код для выполнения при нажатии клавиши в моем HTML-страницу? (он работает в приведенной выше ссылке, но не за пределами jsfiddle)

$('#search').keyup(function() { 
    var $rows = $('#table1 tr'); 
    var val = '^(?=.*\\b' + $.trim($('#search').val()).split(/\s+/).join('\\b)(?=.*\\b') + ').*$', 
     reg = RegExp(val, 'i'), 
     text; 
    $rows.show().filter(function() { 
     text = $(this).text().replace(/\s+/g, ' '); 
     return !reg.test(text); 
    }).hide(); 
}); 

Ps. Это мой первый пост, поэтому дайте мне знать, если я сделал что-то неправильно или вам нужно больше объяснений. Благодаря!

+0

Существует ли кнопка поиска, которая добавляется динамически? – epascarello

+0

У меня это появляется прямо перед столом. Он выглядит так: LearnerMike

+0

И 'var $ rows = $ ('# table1 tr') ; 'находится внутри клавиатуры, как в коде выше? Скрипка это снаружи. – epascarello

ответ

0

Вы уверены, что являетесь владельцем JS-событий после создания дерева DOM?

E.g. оберните свой код как ready прослушиватель событий документа

$(document).ready(function(){ 

    $('#search').keyup(function() { 
     //... 
    } 

}) 
+0

Да, это то, что у меня есть. $ (Document). готовы (функция() {// $ (функция() { \t $ ('# поиск') KeyUp (функция() { \t \t вар $ строки = $ ('# table1 тр.'); \t \t var val = '^ (? =. * \\ b' + $ .trim ($ (this) .val()). Split (/ \ s + /). Join ('\\ b) (? =. * \\ b ') +'). * $ ', \t \t \t reg = RegExp (val, 'i'), \t \t текст; \t \t $ rows.show() фильтр (функция() { \t \t \t текст = $ (это) .text() заменить (/ \ S +/г, ' «);.. \t \t \t возвращение! reg.test (текст); \t \t}). hide(); \t}); }); – LearnerMike

Смежные вопросы