Ich schreibe ein einfaches jQuery-Plugin, das Bilder mit einer bestimmten Klasse in der Mitte des Bildschirms (wenn angeklickt, voller Größe) mit einem grauen Overlay um das Bild angezeigt wird. Wenn wir auf das Overlay klicken, verschwindet es. Jetzt benutze ich dieses Stück Code:jQuery .add Methode
$("#overlay").click(function(){
$(this).animate({
opacity: "0"
}, 500, function(){
$(this).css({
display: "none"
});
});
$("#imgcontainer").animate({
opacity: "0"
}, 500, function(){
$(this).css({
display: "none"
});
});
});
imgcontainer hält unser Bild. Ich habe versucht, dies einfachen Code zu verwenden, aber es funktioniert nicht:
$("#overlay").click(function(){
$(this).add("#imgcontainer").animate({
opacity: "0"
}, 500, function(){
$(this).css({
display: "none"
});
});
});
Warum es nicht funktioniert?
UPDATE:
Korrekter Code:
$("#overlay").click(function(){
$("#imgcontainer").add(this).fadeOut();
});
Vielen Dank für die Antworten. Dieses Verhalten (Bug?) Ist in der Tat sehr überraschend.
Es gibt einen noch kürzeren Weg, '.fadeOut()' setzt 'display: none' am Ende, also' $ ("# imagecontainer"). Add (this) .fadeOut() 'sollte funktionieren. +1 für das Problem, würde +2 für die Fehlerspeicherung, wenn ich könnte. –
@Nick: Guter Punkt über die Neuordnung als eine effizientere Möglichkeit, es zu beheben. Und danke. :-) Ich zog mir heute früher die Haare aus, als ich darauf stieß. –
J. - Ich würde sagen, an diesem Punkt war es absichtlich, da '.add (selector, context)' hinzugefügt wurde, als das kaputt ging ... also wird es wahrscheinlich als kein Bug geschlossen –