unbinding keydown jquery

时间:2010-10-13 11:54:31

标签: jquery binding keydown

我创建了一种方法,您可以按左右键,然后从下一页或上一页开始。问题是,一旦你将它更改为另一个专辑,按键方法仍然绑定到上一个专辑,所以你按右键它将改变当前和以前专辑中的图像。

我已经尝试从目标文件中取消绑定按键,但它只是停止工作。

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;
    }
});

http://www.neuromanga.com/mangaReader1.0.php?cid=1

1 个答案:

答案 0 :(得分:1)

您应该使用$("#mangaImage").one('load', function () { .. });,而不是使用$("#mangaImage").load(function () { ..});。你目前正在做的是每次按下键时添加一个新的事件处理程序;而不是删除任何。