laimas,
первый блок не смотрите. Надо на примере второго только создать скрипт. первый блок законченный уже. он такой один будет и его скрипты отдельные. Кроме скрипта show/hide для показа дочернего .upsale__block__bot-right__sub-wrap. Но и тот работает по принципу this.children() |
Цитата:
Код этого обработчика $('.upsale__block__sub-right-wrap').on('click', '.upsale__block__bot-right__title-wrap', function() ... заменить на: $('div.upsale__block__bot-right__title-wrap').click(function() { $(this).next() .slideToggle(100) .end() .find('img').toggleClass('arrow_down arrow-up') .end() .find('.montage__more').hide() .end() .find('.invite').show(); }); Здесь делегирование совсем не требуется. Правда зачем в нем строки: $(this).siblings('.upsale__block__bot-right__sub-wrap').find('.montage__more').hide(); $(this).siblings('.upsale__block__bot-right__sub-wrap').find('.invite').show(); (в новом коде это четыре последних операции в цепочке) если можно сразу сделать нужно видимым/скрытым. Код обработки изменения флажков заменить на этот: $('div.upsale__block__sub-right-wrap').slice(1).on('change', 'input', function(e) { var a = $(e.delegateTarget).find('input'), chk = a.slice(1); if(a.eq(0)[0]==this) { chk.prop('checked', false); this.disabled = true; }else { var c = chk.filter(':checked').length; a.eq(0).prop({checked: c, disabled: !c}); } }); Он устанавливается на блоки кроме первого. |
Вложений: 1
laimas,
Цитата:
- при нажатии на .btn_more (желтая кнопка) скрывается кнопка (синяя) .invite и открывается появляется блок .montage__more. Когда повторно нажимаем на .btn_more, то montage__more скрывается, а кнокпа .invite (синяя) появляется на том месте где была скрыта. Причем кнопка .invite дублируется в блоке .montage__more, когда тот открывается, НО она не участвует в срипте show/hide (и не должна). - если развернут блок .montage__more, то при нажатии на .upsale__block__bot-right__title-wrap этот блок должен свернуться и кнопка .invite должна стать show(), чтобы при последующем открытии она была доступна пользователю, т.к. если этого не сделать, то она не появится. на картинках всё показал. Надеюсь понятно объясняю, а не только для меня мои мысли понятны:) Но опять же это не решает проблему нажатия на .floor__item-wrap, чтобы сработал его дочерний чекбокс |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
наверное так и сделаю. А то 2 дня уже страдаем, а до этого еще я сам 2 потратил. laimas, Спасибо за Ваше терпение и помощь! Жаль нельзя плюсиков больше поставить - я вам вчера уже один поставил:) |
Цитата:
$('div.upsale__block__sub-right-wrap').slice(1).on('change', 'input', function(e) { var chk = $(e.delegateTarget).find('input'); if(chk.eq(0)[0]==this) { chk.slice(1).prop('checked', false); this.disabled = true; }else { var c = chk.slice(1).filter(':checked').length; chk.eq(0).prop({checked: c, disabled: !c}); } }).find('.floor__item').each(function() { $(this).children().wrapAll('<label/>') }); |
Заменил div на label и теперь новая задача возникает:
Раньше, когда галка ставилась для второстепенного input, то родительскому блоку добавлялся background цветом, а галка снималась - background белым делался. Как теперь это добавить в тот код, что имеется?:) $('div.upsale__block__sub-right-wrap').slice(1).on('change', 'input', function(e) { var a = $(e.delegateTarget).find('input'), chk = a.slice(1); if(a.eq(0)[0]==this) { chk.prop('checked', false); this.disabled = true; }else { var c = chk.filter(':checked').length; a.eq(0).prop({checked: c, disabled: !c}); } }); |
Цитата:
|
Цитата:
А вот про цвет не писал - думал сам справлюсь, но не понимаю как связать это с вашим кодом - не работает то, что я пробую. |
Часовой пояс GMT +3, время: 16:03. |