所以这是我的问题,(我知道这可能是一个非常简单的问题,但我对 JavaScript 完全陌生)。所以我有一个报价清单。我需要一个脚本,每次用户单击窗口的任何部分时,它都会根据我想要的时间顺序更改报价。然后当报价完成时再次重新启动。所以让我说,一旦用户打开页面,我有一个带有quote1的段落,而不是用户在任何地方点击,这会发生:同一段落得到quote2。
问问题
3005 次
3 回答
2
很难具体回答,因为你留下了很多悬而未决的问题。但是,从概念上讲,步骤如下:
- 注册一个单击事件处理程序,以便在发生所需单击时调用您的代码。
- 当您的点击处理程序被调用时,您需要获取
<p>
要更改的标签的 DOM 对象。 - 然后,您需要获取下一个要显示的报价。据推测,您会将这些存储在一个数组中,并保留当前显示的数组位置的索引,以便获得下一个。如果您希望它在不同的页面加载中工作,那么您需要将索引存储在 cookie 中,以便它持续到此计算机上的其他页面加载。
- 获得 DOM 元素和引号后,只需设置 DOM 元素的 innerHTML 属性即可插入所需的引号。
如果您的 HTML 是这样的:
<p id="theQuote">This is the first quote</p>
并且,您希望单击此按钮来更改报价:
<button onclick="changeQuote()">Change Quote</button>
或者,如果您想点击页面中的任何位置,您可以将其用于您的正文标签:
<body onclick="changeQuote()">
然后,您可以使用以下代码执行此操作:
var quoteIndex = 0;
var quotes = [
"First Quote",
"Second Quote",
"Third Quote"
];
function changeQuote() {
++quoteIndex;
if (quoteIndex >= quotes.length) {
quoteIndex = 0;
}
document.getElementById("theQuote").innerHTML = quotes[quoteIndex];
}
如果您确实希望单击页面中的任何位置来旋转引用(这似乎不太可能是正确的设计),那么您可以将点击处理程序分配给 body 标记。
于 2012-12-24T04:39:45.470 回答
0
你有什么尝试?
在这里,我使用 jquery 来获得更快的代码
var quotes = ["quote1","quote2"];
var current = 0;
function changeQuote(){
if (current >= quotes.length) current = 0;
document.getElementById("paragraph").innerHTML(quotes[current]);
current++;
}
document.body.onclick = changeQuote;
于 2012-12-24T04:42:10.510 回答
0
尝试这样的事情:
<html>
<head>
<script type="text/javascript">
var quotes = ["Quote 1", "Quote 2"]
var index = 0;
function updateQuote() {
index = index + 1;
if(index == quotes.length) {
index = 0;
}
document.getElementById("myQuote").innerHTML = quotes[index];
}
</script>
</head>
<body onClick="updateQuote(); return false;">
<p id="myQuote"></p>
</body>
</html>
于 2012-12-24T04:42:14.270 回答