Ваш первоначальный подход работал просто отлично - единственная проблема состояла в том, что ваше if
условие имело ненужное закрытие )
и ;
, что приводило к расстроению JavaScript.
Вот рабочаяfiddle , с исправленными синтаксическими ошибками и добавлением «alert ()», чтобы вы могли видеть, каков ваш $(window).width()
перед тестированием наведения.
Вот фиксированные js:
$(document).ready(function($) {
if ($(window).width() > 480) {
$(window).resize();
$('#accordion').find('.accordion-toggle').hover(function() {
//Expand or collapse this panel
$(this).next().slideToggle('slow');
//Hide the other panels
$(".accordion-content").not($(this).next()).slideUp('slow');
$(this).find('.accordion-content').stop(true, true).slideToggle()
}, function() {
$(this).find('.accordion-content').stop(true, true).slideUp()
}).find('.accordion-content').hide()
}
});
ПРИМЕЧАНИЕ - если желаемый эффект состоит в том, что функциональность при наведении курсора изменяется без перезагрузки страницы, то нам нужно изменить первоначальную оценку $(window).width()
, как это происходит вdoc.ready, который сработает после завершения загрузки DOM.Если вы хотите, чтобы страница всегда учитывала ширину экрана, а затем динамически изменялась при изменении размера экрана, вам необходимо добавить прослушиватель событий, который «прослушивает» изменения размера экрана и действует в соответствии с ними. Вот некоторая документация по обработчику событий jQuery resize()
, которая позволит вам оценивать ширину окна при каждом изменении размера экрана.