отмена привязки JQuery - PullRequest
       23

отмена привязки JQuery

1 голос
/ 13 октября 2010

Я создал метод, при котором вы нажимаете левую и правую клавиши, и он идет со следующей или предыдущей страницы.проблема в том, что после того, как вы измените его на другой альбом, методы нажатия клавиш по-прежнему будут привязаны к предыдущему альбому, поэтому при нажатии на правую клавишу изображение изменится как в текущем, так и в предыдущем альбомах.

Я попытался отсоединить нажатие клавиши от документа, на который он нацелен, но он просто перестает работать.

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

, и вот код нажатия клавиш, который использует метод выше

$(document).keydown(function (e) {
    if (e.keyCode == 39) {
        alert("right pressed");
        doNext();
        return false;
    }
});

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

1 Ответ

1 голос
/ 13 октября 2010

Вместо использования $("#mangaImage").load(function () { ..});, вы должны использовать $("#mangaImage").one('load', function () { .. });.В данный момент вы добавляете новый обработчик событий при каждом нажатии клавиши;и не удаляя их.

...