я следующее, если оператор в функции мыши:Если оператор работает в консоли, а не в источнике
$('#rent-link').on('click', function() {
$('.house-card:not(.sold)').fadeIn('fast');
$('.for-sale').fadeOut('fast');
$('.rental').fadeIn('fast');
$('.sold').fadeOut('fast');
$('.comm').fadeOut('fast');
if ($('.house-card:visible').length == 0) {
$('#no-results').show();
}
return false;
});
Весь код обернут в док готовой функции, так что не может быть проблемой. Я не уверен, почему, когда параметры установлены для этого оператора if для разрешения true, он всегда разрешает false. Когда я нажимаю # rent-link, а затем запускаю оператор if в консоли, он разрешает true.
Спасибо за помощь.
Edit:
Я обновил свой код с функцией SetTimeout, и она работала. Вы, ребята, были правы, спасибо!
Вот рабочий код:
$('#rent-link').on('click', function() {
$('.house-card:not(.sold)').fadeIn('fast');
$('.for-sale').fadeOut('fast');
$('.rental').fadeIn('fast');
$('.sold').fadeOut('fast');
$('.comm').fadeOut('fast');
setTimeout(function() {
if ($('.house-card:visible').length === 0) {
$('#no-results').show();
}
}, 500);
return false;
});
Вы можете повторить проблему в [скрипке] (https://jsfiddle.net)? – Yass
Может быть, 'fadeOut ('fast')' не достаточно быстро, т. Е. Вы проверяете, прежде чем все '.house-карты 'стали невидимыми. – Teemu