Я пытаюсь создать скрипт, который будет запущен, как только:
А ТАКЖЕ
В качестве примера я добавил небольшой отрывок из моего кода.
Как вы думаете, это возможно? Я попытался с JQuery, но не смог добиться успеха. Спасибо за вашу помощь.
<div id="hidden3">
<div id="asset_parameters">
<div id="Rente_div" style="display: none;">
<span>Rente:</span>
<span><input name="Rente" id="Rente" onblur="asset_value(this.id)"></span>
<div class="eventIndicator">
<span class="unvalidated">Incomplete</span>
</div>
</div>
<div id="Bouquet_div" style="display: none;">
<span>Bouquet:</span>
<span><input name="Bouquet" id="Bouquet" onblur="asset_value(this.id)"></span>
<div class="eventIndicator">
<span class="unvalidated">Incomplete</span>
</div>
</div>
<div id="Valeur_libre_div" style="display: none;">
<span>Valeur libre:</span>
<span><input name="Valeur_libre" id="Valeur_libre" onblur="asset_value(this.id)"></span>
<div class="eventIndicator">
<span class="unvalidated">Incomplete</span>
</div>
</div>
</div>
Вы можете опросить его, но это не очень эффективно. Вместо этого я бы включил обратный вызов, но здесь был фрагмент опроса:
(function poll () {
var $div = $('.eventIndicator');
if ($div.find('span.validated').length && $div.parent().is(':visible')) {
// do something
} else {
setTimeout(poll, 500);
}
}());
вам нужно запустить собственное событие при каждом show
/hide
использования, а затем подсчитать видимые элементы:
if($('#Rente_div:visible, #Bouquet_div:visible, #Valeur_libre_div:visible').length === 3) alert('OK')
или вы можете просто использовать setInterval
чтобы проверить это
//edit: oops sorry - этот пост был сделан для вашей предыдущей версии вопроса, но я думаю, вы можете настроить этот ответ для своих нужд
Используйте .toggleClass()
при срабатывании события. Суть в том, что событие должно срабатывать, чтобы что-то произошло.