Я не могу понять, что не так с моим кодом. У меня есть пара глобальных переменных, которые я меняю каждый раз, когда нажимается какая-то определенная кнопка, есть также несколько пользовательских функций, которые выполняют вызовы ajax, которые возвращают кусок html-кода с разбиением на страницы ниже, который работает следующим образом:Javascript: дублирование событий
$('#foot #pagination a.page').live('click', function(){
window.mode = 'partial';
window.key = $('input#search').val();
window.page = $(this).parent().find('input').val();
setTimeout('getData();', 0);
});
иногда при переходе на другое событие страницы удваивается, и я получил удвоенный html. при калибровке getData(); с консоли браузера - все работает отлично, как будто оно должно работать. Что может быть причиной этого?
** Никогда ** передайте строку 'setInterval()' или 'setTimeout()'. Это так же плохо, как использование 'eval()', и это приводит к нечитаемому и, возможно, небезопасному коду, как только вы используете переменные, так как вам нужно вставить их в строку вместо передачи фактической переменной. Правильным решением является 'setInterval (function() {/ * ваш код *)}, msecs);'. То же самое относится к 'setTimeout()'. Если вы просто хотите вызвать одну функцию без каких-либо аргументов, вы также можете передать имя функции напрямую: 'setInterval (someFunction, msecs);' (обратите внимание, что в имени функции нет ** ** '()') – ThiefMaster
спасибо за примечание –