Я использую сторонний javascript, который дал мне большую потребность в слушателях.Например, когда определенный div был загружен, я хочу что-то с ним сделать.Он меняет стили объектов по мере того, как он идет, поэтому мне нужно следить за тем, чтобы он имел определенный стиль.Я построил функции, чтобы действовать, когда идентификатор или класс существует.Вот текущая функция ID.Как видите, он использует jQuery.
function whenLoaded(element_id, action) {
if ($(element_id)) {
action();
}
else {
setTimeout("whenLoaded('"+element_ids+"',"+action+", '"+stop_on+"')", 500);
}
}
Мне действительно нужно что-то, для чего я могу дать несколько условий.Например:
whenTrue(
($('popup') && $('popup').style.width == '500px'),
$('popup').style.width = '0'
);
Я бы ожидал, что он рекурсивно проверит условия (1-й параметр).Когда эти условия выполняются, выполните действие.
Мне удалось выполнить это с помощью eval (), но меня предупредили не использовать его, не помню, почемуПри этом я хотел бы сделать это по-другому.
eval () решение:
whenTrue(
"($('popup') && $('popup').style.width == '500px')",
"$('popup').style.width = '0'"
);
function whenTrue(condition, action) {
if (eval(condition)) {
eval(action);
}
else {
setTimeout("whenTrue('"+condition+"','"+action+"')", 500);
}
}