Выпадающее меню
Доброго времени суток тем кто читает это.
Проблема следующая, не выпадает список при нажатии на кнопку, вот 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, время: 10:02. |