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! –