2013-05-23 29 views
0

Я использую отзывчивый дизайн, и я хочу добавить функцию dropdow с Jquery на событие click, только когда экран меньше 1020px. Я использую функцию изменения размера, которая запускается, когда клиент меняет размер окна своего браузера.Событие jQuery bubbling при изменении размера окна - отзывчивый дизайн

Но проблема в том, что функция пузырится и запускается 5 раз. Как это возможно ???

$(window).resize(function() { 

    var screenWindow = $j(document).width(); 

    if(screenWindow < 1020){ 
     $('.filter').click(function(){       
      $('dd.first').slideToggle(); 
     }); 
    } 
}); 

Спасибо за помощь.

ответ

2

Попробуйте

$('.filter').click(function() { 
    if($(window).width() < 1020) { 
     $('dd.first').slideToggle();   
    } 
    return false; 
}); 

положить это вне размер

Кроме того, сколько «дд» и сколько «.filter» есть на странице? Вы можете показать какой-нибудь html? Если у вас несколько файлов .filter, то обработчик click будет выполняться несколько раз. Если «dd» находится внутри фильтра, тогда код может меняться так, что срабатывает только «dd»

+0

Я проверил вариант таймера, который имеет смысл. Но он работал только в первый раз. У меня было большое окно, изменение размера и щелчок по элементу: все работает отлично. Но когда я снова изменяю размер, он начинает открывать и закрывать несколько раз. Это позволило проверить размер окна внутри функции щелчка. Спасибо eveybody за очень быструю обратную связь! – user1149497

Смежные вопросы