#javascript #jquery
#javascript #jquery
Вопрос:
У меня есть следующий фрагмент кода:
$(".mydrop dt a").on('click', function() {
if ($(".ulEvent").attr('style') === 'display: none;') {
$('.rowSpaceEvent').remove();
}
$(".mydrop dd ul").slideToggle('fast');
for (var i=0;i < $(".clsEvent").length;i )
{
$(".eventDrop").append("<div class='row rowSpaceEvent'>amp;nbsp;</div>");
}
});
при запуске этого кода при первом запуске события click мои divs создаются так, как я их ожидаю. Если я снова пройду событие click и выполню код, он точно попадет в функцию remove(), но не удалит divs. Используя chrome, я все еще вижу элементы. Если я затем перейду в окно консоли Chrome, затем запустите ту же строку, что и divs, они будут удалены. По сути, я создаю пользовательский выпадающий список «на лету» с помощью флажков, и мне нужно нажать всю остальную часть страницы вниз, когда я открываю выпадающий список для количества элементов в выпадающем списке, а затем, когда выпадающий список снова щелкают, он закрывается, а остальная часть страницы перемещается назад.
Комментарии:
1. Пожалуйста, укажите свой HTML-код или ссылку на Jsfiddle
2. Вы проверили, что $(‘.rowSpaceEvent’) соответствует чему-либо на данный момент времени? Вы можете сделать это, вставив
console.log($('.rowSpaceEvent'));
перед строкой 3. Если вы откроете консоль разработчика, посмотрите, сможете ли вы обнаружить сообщение журнала. Если да, и если это не пустой массив, пожалуйста, дайте мне знать. Если это пустой массив, ваш селектор кажется неправильным, если вы ничего не видите$(".ulEvent").attr('style') === 'display: none;'
, оператор, похоже, возвращает false3.
$(".ulEvent").attr('style') === 'display: none;'
это плохой способ проверить CSS… Вы должны использовать$(".ulEvent").css("display")
4. @HanyAlsamman почему….
5. @HanyAlsamman То, что вы предложили, не имеет смысла.