0
私は、サブメニューコンテナがリンクコンテナの子または兄弟ではない、サブメニュー用の動作するjavascriptソリューションを持っています。私はプロトタイプパターンを実験しようとしています。だから私は、すでに動作しているコードをプロトタイプパターンに変換して、より読みやすいコードを取得しようとしています。現在は失敗しています。コンソールにエラーは表示されませんが、コードは機能しません。理解オブジェクト。プロトタイプパターン
jQuery(document).ready(function ($) {
function tg_dropdown(element) {
this.element = element;
this.mainNavigation = $('#top-menu');
this.dropdownLink = this.mainNavigation.find('.has_dropdown');
this.bindEvents();
}
tg_dropdown.prototype.bindEvents = function() {
var $tg_megamenu__link = $('.tg-megamenu__link'),
self = this;
$tg_megamenu__link.mouseenter(function(event) {
self.showDropdown();
}).mouseleave(function() {
setTimeout(function() {
if ($('#top-menu').find('.has-dropdown:hover').length == 0 && $('#main-header').find('.tg-submenu:hover').length == 0)
self.hideDropdown();
}, 50);
})
};
tg_dropdown.prototype.showDropdown = function() {
$('body').addClass('test');
};
tg_dropdown.prototype.hideDropdown = function() {
$('body').removeClass('test');
}
});
プロトタイプパターンのいくつかの基本的な基礎を監督することがあります。誰かが私を正しい方法に導いて、このことを働かせることができますか?
あなたは 'tg_dropdown'クラスのインスタンスを作成していません。 'tg_dropdown'関数(クラスコンストラクタ)は決して呼び出されません。 – Titus
作業中のインスタンスを取得するには、 'new tg_dropdown(element)'を呼び出す必要があります。 – ideaboxer
JavaScriptの.prototypeはどのように動作するのですか?(https://stackoverflow.com/questions/572897/how-does-javascript-prototype-work) – ideaboxer