0
OOP Javascriptでメニューを作ってみました。私はデスクトップバーガーアイコンのための2つのメニュー要素 "toggleBtn"とモバイルブルガーアイコンの "toggleBtnMobile"を持っています。私のOOPが私のメニューで動作していません
問題は今のところ働いていません。
var $this = $(this),
$navSidebar = $('#navSidebar'),
$navDlrz = $('#navDlrz'),
$toggleBtn = $('#toggleBtn'),
$toggleBtnMobile = $('#toggleBtnMobile'),
$menuHasChildren = $('.menu-item-has-children'),
$subMenu = $menuHasChildren.find('ul.sub-menu');
// Menu class
function Menu(menu) {
this.menu = menu;
var one = menu.children().eq(1); // Burger Icons top bar
var two = menu.children().eq(2); // Burger Icons middle bar
var three = menu.children().eq(3); // Burger Icons bottom bar
}
// When the Nav is clicked, the burger Icon transforms into "X"
Menu.prototype.openNav = function() {
one.addClass('One');
two.addClass('Two');
three.addClass('Three');
$navSidebar.css('left', '0px');
$navDlrz.css('left', '200px');
};
// Back to standard Icon
Menu.prototype.closeNav = function() {
one.removeClass('One');
two.removeClass('Two');
three.removeClass('Three');
$navSidebar.css('left', '-200px');
$navDlrz.css('left', '0px');
}
Menu.prototype.toggleNav = function() {
menu.click(function() {
var $this = $(this),
$className = $this.attr('class');
switch($className) {
case 'navbar-toggle':
$this.addClass('open');
this.openNav();
break;
case 'navbar-toggle open':
$this.removeClass('open');
$menuHasChildren.removeClass('open');
$menuHasChildren.find('ul.sub-menu').removeClass('open');
this.closeNav();
break;
}
});
}
Important notice: I don't need any framework regarding menu toggeling. I'm learning at the moment.
これは役に立ちませんでした。これは、this.openNav()またはthis.closeNav()は関数ではないと言います。 –
Menuコンストラクタで変数を宣言し、Menu.prototype.openNavメソッドのオブジェクトキーとして使用しました。 "function Menu(){ var one = menu.children()。eq(1); // this :one = menu.children()。eq(1); } メニュー。 "one.removeClass( 'One'); 'var'で変数を宣言できず、コンストラクタからそれを使用することはできません – Bakshi
これまで述べたように助けになりませんでした。 。私はこのキーワードでそれらを使用しましたが、ここにコンソールの出力があります: VM2348:58 Uncaught TypeError:this.closeNavはHTMLButtonElementの関数 ではありません。(:58:26) とVM2348:58キャッチされない例外TypeError:this.openNavはHTMLButtonElementで機能 ありません。 (:58:26) –