我刚开始学习模块Javascript。我有一些叫做浮标的物体,有多种类型的浮标(这些基本上是弹出窗口)。
实时聊天是其中一种类型。
我正在将我的所有代码转换为更像模块的结构,并且遇到了一些问题。
代码如下,我将对需要注意的部分发表评论。
查看变量$liveChat
内的cacheDom函数。
我将此liveChat作为子元素(反对将其所有方法放在父类中)的原因是因为它将具有唯一的方法,这些方法不适用于父类中的所有内容。请记住,我将有多种类型的浮标。 LiveChat是我迄今为止创建的唯一一个。我将在liveChat中添加的这些功能将成为liveChat浮标的独特功能。
/* Buoy */
(function{
var buoy = {
init: function () {
this.liveChat.init();
this.cacheDom();
this.bindEvents();
},
cacheDom: function () {
this.liveChat.cacheDom();
this.$document = $(document);
this.$buoyContainer = $("#buoy-container");
this.$buoy = this.$buoyContainer.find(".buoy");
this.$addDream = this.$buoyContainer.find(".buoy.addDream");
this.$scheduleDream = this.$buoyContainer.find(".buoy.live-chat");
},
bindEvents: function () {
this.liveChat.bindEvents();
/* Remove Focus */
this.$document.on("click", this.removeFocusAll.bind(this.$buoy));
/* Add Focus */
this.$buoy.on("click", this.addFocus);
this.$liveChat.on("click",)
},
addFocus: function () {
this.addClass("focus");
},
removeFocus: function () {
this.removeClass("focus");
},
/* Live chat */
liveChat: {
init: function () {
},
cacheDom: function () {
//This is where I need to access the parent variable "$document" which is initialized in the parents cacheDom method
},
bindEvents: function () {
}
}
}
buoy.init();
}());
答案 0 :(得分:0)
您可以将app.run(threaded=True)
传递给孩子,然后将其设为this
this.parent