Выпадающее меню
Доброго времени суток тем кто читает это.
Проблема следующая, не выпадает список при нажатии на кнопку, вот html: <div id="dd" class="wrapper-dropdown" tabindex="1">AAA <ul class="dropdown"> <li><a href="#"><i class=""></i>123</a></li> <li><a href="#"><i class=""></i>123</a></li> <li><a href="#"><i class=""></i>123</a></li> <li><a href="#"><i class=""></i>123</a></li> <li><a href="#"><i class=""></i>...</a></li> </ul> </div> а вот код Javascrip: obj.dd.on('click', function(event){ $(this).toggleClass('active'); return false; }); function DropDown(el) { this.dd = el; this.initEvents(); } DropDown.prototype = { initEvents : function() { var obj = this; obj.dd.on('click', function(event){ $(this).toggleClass('active'); event.stopPropagation(); }); } } $(function() { var dd = new DropDown( $('#dd') ); $(document).click(function() { $('.wrapper-dropdown').removeClass('active'); }); }); |
GTRka, строки 1-4 - "не пришей к п... рукав", т.е. непонятно зачем и почему они там.
Если до строки 1 переменная «obj» является экземпляром "класса" DropDown, то менюшка моментально разворачивается и сворачивается обратно. Если переменная undefined, то смотрите консоль, там вас об этом браузер уведомит. В этом случае у вас код вообще работать не будет. |
Nexus,
Спасибо за ответ!) Но ничего не выходит((( я немного изменил код на: $(function() { var dd = new DropDown( $('#dd') ); $(document).click(function() { $('.wrapper-dropdown').removeClass('active'); }); function DropDown(el) { this.dd = el; this.initEvents(); } DropDown.prototype = { initEvents : function() { var obj = this; obj.dd.on('click', function(event){ $(this).toggleClass('active'); event.stopPropagation(); }); } } }); Не ошибок в консоли, ничего... Помогите плиз) Я новичок в этом( В консоли при нажатии на кнопки появляется wrapper-dropdown active , но списка нету(( |
GTRka, в консоли как минимум должно быть уведомление, о том, что в строке 10 вызывается не объявленный метод.
Вы вызываете метод "класса" до того, как внести его в прототип. Строку 3 перенесите на строку 22. |
Nexus,Спасибо большое!)))
У меня немного в другом еще ошибка была, вот и ничего не получалось |
Nexus,
Еще 1 вопрос, а как сделать так что бы при выпадении списка затемнялся задний фон?) |
GTRka, добавить на страницу полупрозрачный слой поверх всего контента, который будет появляться, когда меню открыто.
Само меню придется заставить появляться поверх этого полупрозрачного слоя (position + z-index). Вообще это лишний, никому не нужный геморой. |
Часовой пояс GMT +3, время: 16:03. |