8 Stimmen

Verursachen doppelte ID-Werte Probleme für jQuery-Selektoren?

Wenn ich zwei Divs hätte, beide mit der ID="myDiv", würden beide Divs mit $("#myDiv").fadeOut(); ausgeblendet werden? Oder würde nur das erste/zweite ausgeblendet werden? Oder gar keines?

Wie kann ich festlegen, welches ausgeblendet wird?

Hinweis: Ich weiß, dass doppelte IDs gegen die Standards verstoßen, aber ich verwende das fancybox-Modalpopup und es dupliziert den spezifizierten Inhalt auf Ihrer Seite für den Inhalt des Popups. Falls jemand einen Weg kennt, dies zu umgehen (vielleicht benutze ich fancybox falsch), lassen Sie es mich bitte wissen.

0 Stimmen

Ja, aber ich hatte gehofft, dass wenn ich jemand anderen frage, er mir vielleicht eine Erklärung dafür geben kann, warum nur der erste ausgeblendet wird.

0 Stimmen

Bedeutet es, dass der Inhalt dupliziert wird oder "bewegt" wird an die Position Ihrer Popups?

0 Stimmen

Es verdoppelt es. wenn ich den Quellcode über Firebug anschaue, sehe ich deutlich den Code dort zweimal. Einmal dort, wo ich es platziert habe, und einmal innerhalb des fancybox.

0voto

Ich bin auf dasselbe Problem gestoßen. Anscheinend erstellt, wenn Sie Inhalte auf der Seite erstellen, von der aus Sie ein Fancybox öffnen möchten, ein Spiegeldiv des Originalinhalts. In meinem Fall waren die Steuerelemente in einem div verpackt, das von fancybox erstellt wurde und "fancy_div" genannt wurde.

Ich konnte das Steuerelement auswählen und seinen Wert abrufen, indem ich das folgende Format für den Selektor verwendet habe:

$('#fancy_div [id=InputText]').val();

Ihre Steuerelemente können sich an anderer Stelle innerhalb des Fancybox befinden. Das Beste ist, sich den Quelltext anzusehen, aber das ist knifflig.

Um zum Quelltext zu gelangen, verwenden Sie die folgende Technik: Platzieren Sie diesen Tag auf Ihrem Formular: Wert erhalten Öffnen Sie Ihr Formular, klicken Sie auf den Tag, um das Alert-Fenster zu öffnen.
Stellen Sie sicher, dass sich Ihr Cursor innerhalb des Seiteninhalts befindet (suchen Sie ein Steuerelement und klicken Sie darauf).
Klicken Sie mit der rechten Maustaste außerhalb des Steuerelements und wählen Sie "Quelltext anzeigen".
Es gibt jede Menge divs, also suchen Sie nach dem div, das Ihren Inhalt enthält.

Hoffentlich hilft dies.

0voto

Steve Gelman Punkte 856

Ich hatte kürzlich ein ähnliches Problem. Ich hatte eine einzige Seite, die verschiedenen Inhalt über ein Ajax-Load angezeigt hat. Es gibt einen Button, der den Server auslöst, um ein PDF-Bild zu generieren.

Meine ursprüngliche Lösung war, einen Klassenselektor zu verwenden, was gut funktionierte, aber zu Reibungen mit einem anderen Entwickler führte. Es gab bereits so viele Klassen in den Links, dass das Verwenden einer Klasse als Kennzeichnung den Code hässlich machte. Also habe ich ein name-Attribut verwendet:

`

Das hat prima funktioniert!

`

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X