首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建编辑器

创建编辑器
EN

Stack Overflow用户
提问于 2015-07-02 10:39:24
回答 1查看 48关注 0票数 0

我正在尝试通过一个练习来理解JS中的对象继承,创建一个在线编辑器,就像我在上面写的这个编辑器。

但是..。这里我有点困惑,我想使用data-*来操作我的编辑器:

代码语言:javascript
复制
<div class="editor__wrapper">
 <div data-editor="toolbar">
 </div>
 <textarea data-editor="textarea"></textarea>
</div>

所以,我试着像这样初始化:

代码语言:javascript
复制
$(window).on('load', function() {
 $('[data-editor]').each(function() {
  var element = $(this);

   var editor = new Editor(element);
 });
});

和编辑器:

代码语言:javascript
复制
var Editor = function(element) {
 this.element = element;
};

但这不是我真正想要的..

我想用data-*初始化,但是如果是一个工具栏就创建一个工具栏,如果是一个编辑器就创建一个编辑器,但是让这两个工具继承一个具有公共属性的父类。

我有点迷路了,你们怎么看?有一个更好的方法?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-07-02 12:16:07

如果您尝试将编辑器设置为根据值来处理要创建的内容,则可以执行以下操作:

代码语言:javascript
复制
<script type="text/javascript">
    $(window).on('load', function() {
        $('[data-editor]').each(function() {
            var element = $(this);

            var editor = new Editor(element);
        });
    });
    var Editor = function(element) {
        this.element = element;
        switch(element.data("editor")){
            case "toolbar":
                // Do something magic
                console.log("toolbar");
                break;
            case "editor":
                // Do something less magic
                console.log("editor");
                break;
            default:
                // Be sad and lonely
                console.log("lonely");
                break;
        }
    };
</script>

但是,这对JS中的对象继承没有帮助。为此,您需要进行原型设计,这会得到...很复杂。你可以在这里看到例子:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript#Inheritance

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31174781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档