ES6 class继承的简单应用
class的好处就是让继承的实现更加简单,语法简单,理解起来也不复杂,但是现在只能做测试使用,项目中需要用Babel工具。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Examples</title> <meta name="description" content=""> <meta name="keywords" content=""> <link href="" rel="stylesheet"> <script src="jquery2.3.0.js"></script> </head> <body> <ul class="oUl"> <li>张三:</li> <li>李四:</li> <li>王二:</li> </ul> <ul class="oDiv"> <li id="1"> <h3>我要改剧本,不让~~</h3> <div> </div> </li> <li id="2"> <h3>悬崖上有桥么,有?没有~ </h3> <div> </div> </li> <li id="3"> <h3>你敢打坏我的灯?不租~ </h3> <div> </div> </li> </ul> <script> /*function ChangeToEidt(id,value,parentElement){ this.id = id; this.value = value; this.parentElement = parentElement; };*/ class ChangeToEidt { constructor(id, value, parentEle) { this.id = id; this.value = value; this.parentEle = parentEle; this.initElements(); this.initEvents() } initElements() { this.text = $("<span / >"); this.text.html(this.value) this.edit = $("<input type='text' />"); this.btnDiv = $("<div style='display:inline-block' />"); this.saveBtn = $("<input type='button' value='保存' />"); this.cancelBtn = $("<input type='button' value='取消' />"); this.btnDiv.append(this.saveBtn).append(this.cancelBtn); this.parentEle.append(this.text).append(this.edit).append(this.btnDiv); this.convertToReadable(); } initEvents() { var that = this; this.text.click(function() { that.convertToEditable(); }); this.cancelBtn.click(function() { that.cancel(); }); this.saveBtn.click(function() { that.save(); }); } convertToEditable() { this.text.hide(); this.edit.show(); this.btnDiv.show(); this.edit.focus(); if (this.value == this.getValue()) { this.edit.val("") } } convertToReadable() { this.text.show(); this.edit.hide(); this.btnDiv.hide(); } cancel() { this.convertToReadable(); } save() { this.setValue(this.edit.val()); this.text.html(this.getValue()); this.convertToReadable(); } setValue() { this.value = value; } getValue() { return this.value; } } class ChangeToAreaEidt extends ChangeToEidt { constructor(id, value, parentEle) { super(id, value, parentEle) } initElements() { this.text = $("<span / >"); this.text.html(this.value); this.edit = $("<textarea style='width:315px;height:70px;' />"); this.btnDiv = $("<div style='display:inline-block' />"); this.saveBtn = $("<input type='button' value='保存' />"); this.cancelBtn = $("<input type='button' value='取消' />"); this.btnDiv.append(this.saveBtn).append(this.cancelBtn); this.parentEle.append(this.text).append(this.edit).append(this.btnDiv); this.convertToReadable(); } } $(".oUl li").each(function() { new ChangeToEidt($(this).attr("id"), "请输入成绩...", $(this)); }); $(".oDiv li div").each(function() { new ChangeToAreaEidt($(this).attr("id"), "请留1言...", $(this)); }); </script> </body> </html>