Сообщение от Aruta
|
Надо на примере второго только создать скрипт.
|
Думать надо головой, а не пятой точкой.
Поле типа file также имеет событие change, а делегирование по имени класса блоков. Что при этом произойдет при выборе файла в первом блоке?
Код этого обработчика $('.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});
}
});
Он устанавливается на блоки кроме первого.