jQuery - изменить события при нажатии, а затем вернуться к исходным событиям при втором нажатии? - PullRequest
0 голосов
/ 14 октября 2010

HI al

Я пытаюсь разрешить своего рода «переключение» состояния для группы элементов изображения, в результате чего они имеют

  • ролловер,
  • изменение изображения при нажатии и
  • Элемент списка при изменении идентификатора при нажатии.

Сколько я могусделать, но я не могу заставить их вернуться, когда они нажимаются во второй раз (то есть возвращаются к исходному изображению, с восстановлением ролловера и восстановлением исходного идентификатора).

Вот мой код:

$("#Table1 img").each(function () { // loops round every image in Table1
    $(this).hover(function () {   // sets hover rules
        this.src = "images/mine.gif"
    },function () {  // mine.gif for mouseover, available.gif for mouseout
        this.src = "images/available.gif"
    });
    $(this).click(function () { // sets click rules
        this.src = "images/mine.gif"; // mine.gif for onclick
        this.id = "x" + this.id; // adds an 'x' to the ID of clicked images
        $(this).unbind("mouseover mouseout"); // removes mouseover and mouseout events to keep visual selection
        $(this).click(function () {
            this.src = "images/available.gif";
            this.id = this.id.substr(2, this.id.length);
        });
    });
});

Я пытался встроить функцию $(this).hover() во вторую $(this).click(), но это не сработало.

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

Любая помощь будет высоко ценится.Я понимаю, что есть более элегантные способы сделать то, что я уже сделал в jQuery (делегаты и тому подобное), но, поскольку я учусь, я хотел бы сначала сделать это простым и очевидным способом.

:)

1 Ответ

0 голосов
/ 14 октября 2010

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

http://jsfiddle.net/e8CdP/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...