我创建了一种方法,您可以按左右键,然后从下一页或上一页开始。问题是,一旦你将它更改为另一个专辑,按键方法仍然绑定到上一个专辑,所以你按右键它将改变当前和以前专辑中的图像。
我已经尝试从目标文件中取消绑定按键,但它只是停止工作。
var doNext = function () {
if (pageNumber >= totalPages - 1) {
pageNumber = totalPages;
//alert(pageNumber);
}
else if (pageNumber <= totalPages) {
nextPage = pageNumber += 1;
//alert(nextPage);
$("select#page1").get(0).selectedIndex = nextPage;
$("select#page2").get(0).selectedIndex = nextPage;
$('#mangaImage').attr('src', data[nextPage]['imageLocation']);
$("#mangaImage").load(function () {
$('#mangaImage').attr('width', data[nextPage]['imageWidth']);
$('#mangaImage').attr('height', data[nextPage]['imageHeight']);
$('#contentInner').css("width", data[nextPage]['imageWidth'] + "px");
$('#page').css("width", data[nextPage]['imageWidth'] + "px");
});
}
};
以下是使用上述方法的keydown代码
$(document).keydown(function (e) {
if (e.keyCode == 39) {
alert("right pressed");
doNext();
return false;
}
});
答案 0 :(得分:1)
您应该使用$("#mangaImage").one('load', function () { .. });
,而不是使用$("#mangaImage").load(function () { ..});
。你目前正在做的是每次按下键时添加一个新的事件处理程序;而不是删除任何。