Условный запуск событий слайда и скрытия javascript

#javascript

#javascript

Вопрос:

Я добавил некоторые функции скрытия и скольжения на веб-сайт, чтобы при выборе каждого атрибута продукта следующий выпадал. Это работало нормально, пока клиент не добавил дополнительные атрибуты к НЕКОТОРЫМ продуктам. Дополнительный атрибут вызывает у меня проблемы, потому что я не могу добавить второй триггер функции slide, не заставляя его запускать две функции в этих продуктах.

Исходный код, который я использовал

 $('.wrapperAttribsOptions11').hide();

$('.sizeRadio').click(function () {
$('.wrapperAttribsOptions11').slideDown(800);
});
  

Затем клиент добавил атрибут id4, поэтому я добавил

 $('.wrapperAttribsOptions4').change(function () {
$('.wrapperAttribsOptions11').slideDown(800);
});
  

Но это означает, что на страницах, где используются ОБА атрибута, параметр 11 скользит вниз при нажатии .sizeRadio, а не при изменении параметра 4.

Короче говоря, возможно ли заставить его функционировать так, чтобы если .wrapperAttribsOptions4 присутствовал, то

 $('.sizeRadio').click(function () {
$('.wrapperAttribsOptions11').slideDown(800);
});
  

игнорируется.

Надеюсь, это достаточно ясно.

Комментарии:

1. есть какие-либо проблемы с запуском демонстрации?

2. @gp скрипка здесь jsfiddle.net/pkBbb Вы увидите, что при выборе параметра «Размер» оба параметра «Центр изделия» и «Требования к гравировке» выдвигаются.

Ответ №1:

Я решил это, используя

 if ($('.wrapperAttribsOptions4').length != 0) {
  

таким образом, весь сегмент кода становится

 $('.wrapperAttribsOptions11').hide();
if ($('.wrapperAttribsOptions4').length != 0) {
$('.wrapperAttribsOptions4').change(function () {
$('.wrapperAttribsOptions11').slideDown(800);
});
}else
$('.sizeRadio').click(function () {
    $('.wrapperAttribsOptions11').slideDown(800);
});