Другой подход, без глобальных:
var typewatch = function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
}
}();
Использование:
Присоединение события через JavaScript:
window.onload = function () {
document.getElementById('domain').onkeyup = function() {
typewatch(function(){alert('Time elapsed!');}, 1000 );
};
};
Или с помощью встроенный обработчик событий ( не так рекомендуется, как ), как в вашем примере:
Попробуйте демо здесь .
Заполнитель % s
в execute
ожидает скаляр, а не кортеж. Вам нужно либо заменить его на ','. Join (('% s',) * len (mytuple))
, либо использовать замену строкой!
если self.ids является массивом, у вас возникнут проблемы с выполнением преобразования в операторе execute. Вместо этого вы должны сделать это как строковую операцию перед вызовом оператора execute.
Попробуйте следующее:
my_connection.execute('SELECT * FROM public.table WHERE pk_table_id IN (%s)' %
",".join(str(x) for x in self.ids))
Я закончил тем, что отказался от SqlAlchemy для прямого psycopg2, поэтому я не знаю, применяется ли это на 100%. Я обнаружил, что psycopg2 правильно скомпилирует предложение IN, если вы передадите ему кортеж, а не массив / список. Я передал кортеж целых чисел, и он работал нормально.