danik.js,
Вынес но не понял что сделать с onclick нужно, попробывал
<script type="text/javascript">
// оборачиваем код в функцию, дабы не засерать глобальную область переменными
(function(){
// коллекция элементов-регионов
var options = document.querySelectorAll('a.reg');
// обработчик события click
var onclick = function() {
// обработчик вызывается в контексте элемента, на котором он зарегистрирован, то есть this указывает на сам элемент
var id = this.getAttribute('data-id');
// создаем объект для ajax-запроса
var request = new XMLHttpRequest();
// настраиваем на GET-запрос
request.open('GET', '/pop.php?loc=' + id);
// навешиваем обработчик "смены состояний". тут бы лучше подошел обработчик onload, но у него проблемы с кроссбраузерностью
request.onreadystatechange = function() {
// ожидаем завершения запроса
// 4 - это значение константы request.DONE, означающей, что запрос завершен. опять же, в IE8 константы этой нет, так что пишем тупо четверку
if (this.readyState != 4)
return;
// сервак должен ответить 200 OK, иначе считаем за ошибку
if (this.status !== 200)
return alert('Ошибка при запросе!');
// парсим JSON-ответ. Может бросить исключение при невалидном значении.
var data = JSON.parse(this.responseText);
// если ок, то перезагружаем страницу
if (data.ok)
location.reload();
};
request.send(null); return false
};
for (var i = 0; i < options.length; i++) {
// вешаем обработчик события click на все элементы
options[i].onclick = onclick;
}
})();
</script>
попереименовывать function() - результата не дало
<upd> Пока вернул обратно перенос, не работал скрипт...