var ssOffCanvas = function() {
var menuTrigger = $('#header-menu-trigger'),
nav = $('#menu-nav-wrap'),
closeButton = nav.find('.close-button'),
siteBody = $('body'),
mainContents = $('section, footer');
// open-close menu by clicking on the menu icon
menuTrigger.on('click', function(e){
e.preventDefault();
menuTrigger.toggleClass('is-clicked');
siteBody.toggleClass('menu-is-open');
});
};
proj_request_menu.onclick = function() {
modal.style.display = "block";
};
在 proj_request_menu 函数中调用 ssOffCanvas
对象 menuTrigger
最合适的方式是什么。我知道要在对象内处理这个问题。
例如:menuTrigger.trigger('click');
需要你的帮助...
最佳答案
首先,您必须修改对象定义,以便可以从外部访问您的变量。现在,当您使用 var
关键字(或 const
或 let
)在对象内部创建变量时,它被视为私有(private)属性,只能在该对象内部使用。因此,您必须使用关键字 this
将其设为特权对象(可以从外部访问对象的特权属性),如下所示:
var ssOffCanvas = function(){
this.menuTrigger = $('#header-menu-trigger');
...
};
请注意 this.menuTrigger
中的 this
关键字。
要首先获取对象的属性,您必须实例化它:
let myCanvas = new ssOffCanvas();
然后您将能够获得该属性:
myCanvas.menuTrigger; // returns $('#header-menu-trigger') value
对其他属性执行相同的操作。让我知道它是否有效。
关于javascript - 如何从javascript函数调用对象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44344040/