какие технологии оптимально подойдут для такого сервиса?Те, которые вы умеете использовать.
Может, можно как-то сделать типа
var header__layer1 = $('.header__layer1') or die
if (!header__layer1.length || !figures.length)
почему-то перестают работать скриптыВнезапно, потому, что элементы, на которые установлены обработчики, были удалены. Покажите полный код.
$(document).ready(function () {
var $form = $('#filter'),
$controls = $form.find('input,select,textarea');
$controls.on('change', function () {
var $control = $(this);
$control.prop('disabled', true)
startLoadingAnimation();
$.post(
"/engine/ajax/filter.php",
$("#filter").serialize(),
function (response) {
setTimeout(function () {
$('#dle-content').html(response);
stopLoadingAnimation();
}, 3000);
}
).always(function () {
$control.prop('disabled', true)
});
});
});
function startLoadingAnimation() {
$("#dle-content").append('<div id="res"><img src="http://katushka.in.ua/templates/katushka2/images/ajax-loader.gif" /></div>');
}
function stopLoadingAnimation() {
$("#res").remove();
}
var p = document.getElementsByTagName('p')[0],
text = '',
child,
index;
for (index = 0; index < p.childNodes.length; index++) {
child = p.childNodes[index];
if (child.nodeType == Node.TEXT_NODE)
{
text += child.nodeValue;
}
}
console.log(text);
Это поведение соответствует стандарту. Оно существует, в первую очередь, для совместимости, как осколок далёкого прошлого и не очень приветствуется, поскольку использует глобальные переменные. Браузер пытается помочь нам, смешивая пространства имён JS и DOM, но при этом возможны конфликты.