hide () с Jquery работает не на 100% - PullRequest
0 голосов
/ 18 ноября 2011

У меня есть следующая страница: http://www.ontdekjewintersport.nl/

Страница настроена на 3 слайда, управление которыми осуществляется кнопками внизу страницы. На первом слайде кнопка vorige (предыдущая) слева скрыта, а кнопка volgende (следующая) показана справа. На следующем слайде показаны обе кнопки, а на слайде 3 мы пытаемся скрыть следующую кнопку. Но эта кнопка не скрывается.

Я перепробовал все возможные варианты, такие как полное очищение тега с идентификатором, удаление класса и диапазона, но ни один из них не работал. Я не борюсь и надеюсь, что вы мне поможете, как я могу спрятать следующую кнопку на последнем слайде.

Нужна дополнительная информация, пожалуйста, дайте мне знать.

С уважением

Ralf

1 Ответ

2 голосов
/ 18 ноября 2011

Я посмотрел на ваш код, и у каждого слайда есть свой собственный набор кнопок «следующий / предыдущий». Проблема в том, что каждая из этих кнопок имеет одинаковый идентификатор (leftControl / rightControl). Каждый элемент на вашей странице, имеющий идентификатор, должен иметь уникальный идентификатор. Я полагаю, именно поэтому ваш код не скрывает последнюю кнопку «Далее»; Ваш код находит первый элемент с идентификатором rightControl и скрывает его (что я проверял в Firebug).

Если вы измените свои селекторы для использования классов следующих / предыдущих кнопок (volgende / vorige), они будут затронуты при запуске кода, а не только при поиске первой кнопки.

function manageControls(position){
    // Hide left arrow if position is first slide
    if(position==0){ $('#leftControl').hide();}
    else{ $('#leftControl').show(); }
    // Hide right arrow if position is last slide
    if(position==numberOfSlides-1){ $('#rightControl').hide(); /*$('#extra').hide(); */}
    else{ $('#rightControl').show(); }
}

Может измениться на:

function manageControls(position){
    // Hide left arrow if position is first slide
    if(position==0){ $('.vorige').hide();}
    else{ $('.vorige').show(); }
    // Hide right arrow if position is last slide
    if(position==numberOfSlides-1){ $('.volgende').hide(); /*$('#extra').hide(); */}
    else{ $('.volgende').show(); }
}

Или, более конкретно, если вы хотите скрыть только первую «предыдущую» или последнюю «следующую» кнопку:

function manageControls(position){
    // Hide left arrow if position is first slide
    if(position==0){ $('.vorige:first').hide();}
    else{ $('.vorige').show(); }
    // Hide right arrow if position is last slide
    if(position==numberOfSlides-1){ $('.volgende:last').hide(); /*$('#extra').hide(); */}
    else{ $('.volgende').show(); }
}
...