我确信这是一个非常基本的问题但是我对jquery很新,我不知道该怎么做。我在论坛中搜索过,我发现了一些有用的信息,但我无法弄清楚如何把它们放在一起。我正在尝试创建的是一个简单的消息框,您可以使用“下一个”和“上一个”按钮滚动浏览消息,还可以查看您正在查看的消息#。所以基本上它在设计方面会是这样的:
$ message_title ............. $ message_#out of $ total _#_ messages
$ MESSAGE_CONTENT
[上一页按钮] - [下一页按钮]
到达最后一条消息后,您只需重新开始,这样就可以进入msg_1> msg_2> msg_4> msg_5> msg_6> msg_1再次等等。
所以我开始使用2个数组,一个用于标题,一个用于消息:
var array-title = [ "title 1","title 2","title 3" ];
var array-message = [ "message 1","message 2","message 3" ];
我找到了一种为ID分配新文本的方法
$(document).ready(function(){
$("#btn1").click(function(){
$("#title-div").text("title 1");
$("#message-div").text("message 1");
});
});
我有2个具有这些特定ID的div并且效果很好,但是我不知道如何将我的数组与我的指定文本代码连接起来。我尝试了类似下面的内容,但它不太起作用:
var i = 0;
$(document).ready(function(){
while ( i < array-title.length ) {
$("#btn1").click(function(){
$("#title-div").text( array-title[ i ] );
$("#message-div").text( array-message[ i ] );
$("#message-number-div").text( i + 1 );
i++;
});
}
});
我尝试了其他一些但没有运气。有空闲时间的人可以告诉我该怎么做吗?如果可能的话,请写下我遇到问题的完整代码,把整个问题放在一起。非常感谢您提前帮助我的任何人!
答案 0 :(得分:1)
这应该可以做到! http://jsfiddle.net/skq64/1/
<div id="messageBox">
<div id="message">
</div>
<div id="previous" style="background-color: red; margin: 5px; cursor: pointer;">
Previous
</div>
<div id="next" style="background-color: red; margin: 5px; cursor: pointer;">
Next
</div>
</div>
var messages = [
{
"author" : "john doe",
"date" : "1-2-12",
"content": "this is my content, as written by John!"
},
{
"author" : "jane smith",
"date" : "1-2-13",
"content": "blah blah blah"
},
{
"author" : "Some dude",
"date" : "1-2-11",
"content": "etc etc etc"
},
];
var messageIndex = 0;
$("#previous").on("click", function(){
// JavaScript modulo operator requires us to make a lengthy decrement call
messageIndex = (messageIndex + messages.length -1) % (messages.length);
$("#message").text(messages[messageIndex].content);
});
$("#next").on("click", function(){
messageIndex = (messageIndex+1) % (messages.length);
$("#message").text(messages[messageIndex].content);
});
$("#message").text(messages[0].content);