$(".p-list > ul > li").click(function () {
if ($(this).children('.sub-parts').length > 0) {
if (!$(this).hasClass('open')) {
$(this).addClass('open');
$(this).find('.sub-parts').fadeIn('normal');
}
}
});
$(document.body).on('click', ".p-list .open-tl", function () {
if ($(this).parent('.open').length > 0) {
$open = $(this).parent('.open');
$($open).find('.sub-parts').hide();
$($open).removeClass('open');
}
});
У меня есть этот код, который скрывает div при щелчке и показывает их, когда они нажимают на open'tab .open-tl.
Проблема в том, что второй код выполняется после кода Fadein, когда я не хочу запускать второй код.
Пожалуйста, проверьте http://jsfiddle.net/vNfeD/
1 ответ
$open = $(this).parent('.open');
$($open).find('.sub-parts').hide();
$($open).removeClass('open');
Должно быть
$open = $(this).parent('.open');
$open.find('.sub-parts').hide();
$open.removeClass('open');
И вы можете уменьшить его
$(this).parent('.open').removeClass('open').find('.sub-parts').hide();
Родительский элемент, если его можно удалить, если объект пуст, jquery ничего не сделает
if ($(this).parent('.open').length > 0) { // remove that
Чтобы не разрешить выполнение второго кода, когда дочерний элемент скрыт, добавьте event.stopPropagation (); просто когда нет .open и когда есть сабы, проверьте скрипку
http://jsfiddle.net/r043v/vNfeD/5/
Похожие вопросы
Новые вопросы
html
HTML (язык гипертекстовой разметки) — это язык разметки для создания веб-страниц и другой информации, отображаемой в веб-браузере. Вопросы относительно HTML должны включать минимальный воспроизводимый пример и некоторое представление о том, чего вы пытаетесь достичь. Этот тег редко используется отдельно и часто в паре с [CSS] и [JavaScript].