2013-07-05 5 views
0

У меня есть таблица, которая сортируется и фильтруется, и все работает отлично, если я меняю свой фильтр с помощью поля выбора. Но если пользователь не выбирает фильтр после x секунд, я хочу, чтобы он фильтровался на основе назначенного параметра. У меня нет проблем с изменением выбора после установленного времени, но javascript для фильтра не признает, что это событие change(). Как я могу заставить его распознать его как изменение или каким-либо другим способом зарегистрировать выбор по умолчанию после определенного периода времени?Пожар функции изменения без изменения фокуса

Для справки, я использую этот скрипт для фильтрации таблицы/сортировки:

http://www.javascripttoolbox.com/lib/table/

Я хотел бы передать ему свои собственные значения для Table.filter (это, это).

+0

Просто вызовите ту же функцию, которую вы вызываете в обработчике 'onchange'. – Barmar

+0

@ Barmar это, вероятно, будет звучать глупо, поэтому я прошу прощения. Я использую скрипт, который я нашел в Интернете, который использует следующее для сортировки: select id = "select" onchange = "Table.filter (this this this)" как бы я ссылался (на это), так как я Предположим, что это зависит от выбора? Не только это, я понятия не имею, что это, на что это относится. – jboneca

+0

Пожалуйста, добавьте ссылку на веб-сайт, описывающий сценарий таблицы. – Barmar

ответ

1

Я думаю, что что-то, как это должно работать:

var defaultFilter = 3; 
var filterTimeout = 5000; 

window.setTimeout(function() { 
    var select = document.getElementById("select"); 
    select.selectedIndex = defaultFilter; 
    Table.filter(select, select); 
}, filterTimeout); 
+0

Определенно очень близко! Он «фильтрует», но он фильтрует все (т. Е. таблица не отображает строки) – jboneca

+0

Вы установили значение по умолчанию для действительного индекса в раскрывающемся списке выбора? – Barmar

+0

Я идиот. Спасибо @Barmar, работает как шарм! – jboneca

0

HTML:

<select id="select" onchange="Table.filter(this,this)">... </select>

Javascript:

var select = document.getElementById("select"); 
var secondsToChange = 2; 

select.onclick = function() { 
    window.setTimeout(function(){select.onchange.apply(select)},secondsToChange*1000); 
}; 

Я думаю, что должно работать ...

+0

Спасибо, но не кубик :( – jboneca

+0

Отредактировано. Попробуйте прямо сейчас. Посмотрите на это: http://jsfiddle.net/VzGhE/ –

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