С большим количеством проб и ошибок, и, не зная об этом, я сделал следующее:
$("#experience-left-details").on('click', '.see-map, .see-gallery', function (event) {
event.preventDefault();
$("#experience-left-details").fadeToggle(
function(){
$(".media-container, .swiper-container").toggleClass('hide');
mySwiper.resizeFix(true);
mySwiper.reInit(true);
}
);
$("#experience-left-details").fadeToggle();
});
Есть ли способ переделать этот код, сохранив функциональность (очевидно), не повторяя эту строку:
$("#experience-left-details").fadeToggle();
Я чувствую, что вы вызываете один и тот же метод дважды подряд, вот как я собираюсь его очистить:
// store the jquery object for later use,
// instead of recreating over and over
var $eld = $("#experience-left-details");
$eld.on('click', '.see-map, .see-gallery', function (event) {
event.preventDefault();
// use fadeOut its more clear as to what you are doing
$eld.fadeOut(
function(){
$(".media-container, .swiper-container").toggleClass('hide');
mySwiper.resizeFix(true);
mySwiper.reInit(true);
}
// chain on fadeIn for after fadeOut is done
).fadeIn();
});
fadeToggle()
? Любая конкретная причина?