gpt4 book ai didi

JavaScript - 模块模式 - 添加 div 的问题

转载 作者:行者123 更新时间:2023-11-30 09:54:08 25 4
gpt4 key购买 nike

我正在尝试理解 JavaScript 中的模块模式。我从教程中获取了一个基本框架,并尝试根据我的需要对其进行调整。有一个按钮应该添加一个带有一些文本的 div。

这是 JavaScript 部分:

// The module
var s,
myArticles = {

settings: {
articleList: "#article-list",
articleClass: ".article",
articleIndex: 0
},

init: function() {
// kick things off
s = this.settings;
var articles = document.getElementById(this.settings.articleList);
this.createArticle();
},

createArticle: function() {
var div = document.createElement("div");
div.setAttribute("class", this.settings.articleClass);
div.innerHTML = "Article" + this.settings.articleIndex;
articles.appendChild(div);
this.settings.articleIndex +=1;
}
};

HTML 部分:

<body>
<h1>My articles</h1>
<div id="article-list"></div>
<button onclick="myArticles.init()">Add Article</button>

<script src="script.js"></script>
</body>

CSS 部分:

.article {
weight: 500px;
height: 300px;
background-color: red;
display: block;
margin: 10px 0 0 10px;
}

你能帮我让它工作吗?此外,在设置部分,最初值被 $( ) 包围。它向我抛出错误,所以我将其删除。

谢谢。

编辑:这是我指的教程: https://css-tricks.com/how-do-you-structure-javascript-the-module-pattern-edition/

最佳答案

上面的代码有几个不同的问题:

  • 您删除的 $() 指的是 JQuery
  • div.setAttribute("class", this.settings.articleClass);将无法正常工作,因为您将类设置为查询选择器 .article 而不是类 article
  • articles 对于 init 是本地的,但您正试图在 createArticle 中访问它

您需要进行如下更改:

JS:

var myArticles = (function () {
var s, articles;
return {

settings: {
articleList: "article-list",
articleClass: "article",
articleIndex: 0
},

init: function() {
// kick things off
s = this.settings;
articles = document.getElementById(this.settings.articleList);
this.createArticle();
},

createArticle: function() {
var div = document.createElement("div");
div.setAttribute("class", this.settings.articleClass);
div.innerHTML = "Article" + this.settings.articleIndex;
articles.appendChild(div);
this.settings.articleIndex +=1;
}
};
}());

HTML:

  <body>
<h1>My articles</h1>
<div id="article-list"></div>
<button onclick="myArticles.init()">Add Article</button>
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
<script src="script.js"></script>
</body>

关于JavaScript - 模块模式 - 添加 div 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34865785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com