JS读取即将到来的数组元素失败
JS fails reading upcoming array elements
目标是在#leftdiv-box中创建json文件的导航。根据#rightdiv-box中的文件层次结构,应该有到上一页/下一页的链接。
我的实现运行得很奇怪。当您单击导航中的链接时,只显示指向前一页的链接。通过点击前面的链接,到下一页的链接也在更新。导航通过这两个前/下一个链接工作。一旦切换回左侧导航,下一页链接将不再更新。前一个仍然是。你自己试试吧:http://jsfiddle.net/cxdL3/6/
从我发现的问题是读取数组([subchap+1])前面的元素不总是工作。这让我很困惑,因为它应该在函数被调用之前加载。
你能解释这种行为吗?这两个链接基本上也是以相同的方式创建的。
var chap; //position in the array of the currently open chapter
var subchap; //position in the array of the currently open subchapter
function update_right() {
var path = data.chapter[chap].subchapter;
//Previous Page
if(subchap > 0) {
$("#prev").html("<b>Previous: </b><a href='"+path[subchap-1].url+"'>"+path[subchap-1].title+"</a><br/>");
$("#prev > a").click(back);
} else { //subchap == 0
$("#prev").html("");
};
//Next Page
if(subchap+1 < path.length) {
$("#next").html("<b>Next: </b><a href='"+path[subchap+1].url+"'>"+path[subchap+1].title+"</a><br/>");
$("#next > a").click(next);
} else {
$("#next").html("");
}
}
function back() {
subchap--;
update_right();
}
function next() {
subchap++;
update_right();
}
$(document).ready(function() // DOM needs to exist in order to be able to add stuff in there
{
//... Navigation created ...
//------ onClick Navigation
$('#left > ul > li > a').click(
function()
{
chap = $(this).attr("data-chap");
subchap = $(this).attr("data-subchap");
update_right();
}
);
});
其余的文件都很标准。如果它们很重要,可以在这里找到它们:http://fabitosh.bplaced.net/SkriptET_iFrame_v3/
在点击处理程序中获取chap
和subchap
值时,将它们作为整数,而不是字符串:
chap = parseInt($(this).attr("data-chap"), 10);
subchap = parseInt($(this).attr("data-subchap"), 10);
使chap + 1
变成1
时,chap == 0
,而不是"01"
时,chap == "0"
更新后的示例:http://jsfiddle.net/cxdL3/10/
如果您使用$(object).data('chap')
, jQuery将为您处理类型转换
相关文章:
- 在函数中添加数组元素的数值
- 访问JSON对象内部的数组元素
- Mongoose-在更新中删除数组元素
- javascript数组元素是否知道其封闭数组
- 将数组元素附加到FormData dos'不适用于Firefox 15
- 如何在javascript中使用click函数选择数组元素
- 如何在JavaScript中剥离数组元素中的非整数
- 消隐数组元素是否生成自己的属性
- 如何使一个Math.random数组元素比另一个数组元素更有可能被选中
- 在Codrops的内容中添加数组元素展开缩略图网格预览
- 如何使用Jquery水平打印表中的数组元素,并在某个元素之后垂直打印
- 如何访问数组中的数组元素(JavaScript)
- 生成ACF标记位置的数组(元素列表后缺少])
- validate.js验证数组元素
- JavaScript Unshift EACH 数组元素
- 如何在加号运算符之后选择数组元素的一部分
- 访问标记图标的图像数组元素
- JavaScript 合并相同的数组元素
- Redux reducer删除数组元素失败
- JS读取即将到来的数组元素失败