1
看完这篇文章https://msdn.microsoft.com/en-us/magazine/ff852808后,我试着创建一个对象WindowSingle,用新的构造函数创建的对象表现为一个窗口 - 当有人按下右上角的“X”按钮时,窗口关闭(div CSS设置为显示:无;):继承和原型事件
var WindowSingle = function(obj) {
this.obj = obj;
this.isHidden = false;
this.obj.show();
this.events.click.call(this);
};
WindowSingle.prototype.Close = function() {
this.isHidden = true;
this.obj.closest('.window').hide();
};
WindowSingle.prototype.events = {
'click': function() {
var self = this;
var obj = this.obj;
obj.find('.closeX').on('click', function() {
self.Close();
});
}
};
$(document).ready(function() {
myWindowSingle = new WindowSingle($("#myWindow"));
});
.window {
border: 1px solid grey;
margin: 10px;
padding: 10px;
display: none;
width: 250px;
}
.closeX {
position: relative;
top: 0px;
left: 230px;
cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="window" id="myWindow">
<span class="closeX">X</span>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</div>
我的问题是:
- 该如何事件可以更优雅的方式在一般的或类似的处理方式:
WindowSingle.prototype.events = { 'click .closeX': function() {
如流星 - 为什么的
obj.find('.closeX').on('click',self.Close);
简单的调用(正如我写简单的jQuery事件)将无法正常工作。
提前致谢!
谢谢James Long! –