Hallo Tweakers,
ik heb een stukje javascript gemaakt die met behulp van jQuery de status van een listitem weergeeft.
er zijn drie stadia Normaal, Hover, Actief. deze worden met behulp van een sprite getoond.
in principe werkt het, alleen is er nog één dingetje wat ik niet voor elkaar krijg, en dat is het volgende.
als een item actief is unbind() ik de mouseover en mouseout() zodat de status actief blijft van het item,
vervolgens bind ik een click event om het geheel in de oude staat terug te brengen.
Als ik dus klik op een actief item om het inactief te maken, werkt dit wel maar vervolgens werken op dit item de mouseover, mouseout en click niet meer om eventueel wederom te activeren. dit lijkt mij een scope probleem.
ik heb uiteraard al gezocht met google en hier op tweakers naar jquery scope, jquery bind, unbind etc etc, maar de resultaten zijn het allemaal net niet. Daarom aan jullie de vraag om mij een schop in de goede richting te geven of misschien zelfs wel een oplossing
dit is de code:
ik heb een stukje javascript gemaakt die met behulp van jQuery de status van een listitem weergeeft.
er zijn drie stadia Normaal, Hover, Actief. deze worden met behulp van een sprite getoond.
in principe werkt het, alleen is er nog één dingetje wat ik niet voor elkaar krijg, en dat is het volgende.
als een item actief is unbind() ik de mouseover en mouseout() zodat de status actief blijft van het item,
vervolgens bind ik een click event om het geheel in de oude staat terug te brengen.
Als ik dus klik op een actief item om het inactief te maken, werkt dit wel maar vervolgens werken op dit item de mouseover, mouseout en click niet meer om eventueel wederom te activeren. dit lijkt mij een scope probleem.
ik heb uiteraard al gezocht met google en hier op tweakers naar jquery scope, jquery bind, unbind etc etc, maar de resultaten zijn het allemaal net niet. Daarom aan jullie de vraag om mij een schop in de goede richting te geven of misschien zelfs wel een oplossing
dit is de code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| // mouseover $('li.pai-normal').mouseover( function (){ $(this).css("background-position","0px -18px"); }); // back to normal $('li.pai-normal').mouseout( function (){ $(this).css("background-position","0px 0px"); }); // active $('.pai-normal').click(function(){ $(this).css("background-position","0px -36px"); $(this).removeClass("pai-normal"); $(this).addClass("pai-active"); $(this).unbind('mouseover'); $(this).unbind('mouseout'); $(this).bind("click", function(){ $(this).css("background-position","0px 0px"); $(this).removeClass("pai-active"); $(this).addClass("pai-normal"); // hier moet nog iets komen waardoor de mouseover / mouseout en click weer gaan werken nadat het is uitgezet, // het volgende werkt niet: // $(this).bind('mouseover'); // $(this).bind('mouseout'); // $(this).bind('click'); }); }); |