Frage

Ich stecke wirklich fest. Ich brauche dringend Rat: D Hier ist mein HTML:

<!-- Beginning of ROW !-->
<div id="row1">
 <div id="entry">
  free
  <span>some text</span>
  <p>DKK</p>
  <input type="radio" name="red<% Response.Write(counter); %>" id="radio" value="0" />
 </div>

 <div id="entry">
  week
  <span></span>
  <p>DKK</p>
  <input type="radio" name="red<% Response.Write(counter); %>" id="radio2" value="75" />
 </div>
</div>
<!-- End of ROW !-->

<!-- Beginning of ROW !-->
<div id="row2">
 .... same as in row 1
</div>
<!-- End of ROW !-->

nth row ..

Hier ist JQuery:

$("input").click(function() {
     $("input").parent("div").css("background", "url(images/div_bg.png)");
     $(this).parent("div").css("background", "url(images/div_bg_hover.png)");
});

Was ich versuche zu tun. Wenn ich eine Funkeingabe auswähle, sollte die Div, in der sie sich befindet Dann wähle ich den Wert in der zweiten Zeile aus. Die DIV in der zweiten Reihe, in der sich die Funkeingabe befindet

alt text

Und hier ist was ich erreiche:

alt text

War es hilfreich?

Lösung

Was ist der Zweck Ihrer zweiten JQuery -Zeile?

$("input").parent("div").css("background", "url(images/div_bg.png)");

Dies wird den Hintergrund aller "Eintrags" -Divs zurücksetzen. Wenn ich dein Ziel richtig verstehe, denke ich, dass du willst:

$(this).parent("div").siblings("div.entry").css("background", "url(images/div_bg.png)");

Auf diese Weise werden nur die Geschwister des Eintrags, den Sie ändern, ihre Hintergründe zurücksetzen.

Nebenbei bemerkt haben Sie mehrere Divs mit derselben ID, was keine gute Idee ist.

Andere Tipps

Diese Linie: $("input").parent("div").css("background", "url(images/div_bg.png)" Wird alle anderen Elemente wieder normalisiert, sodass Sie jeweils nur einen aktiven Zustand haben können. Sie können es in die Zeile umgehen, damit jede Zeile einen Element ausgewählt hat.

Sie zuweisen nur dem geklickten Element ein Verhalten und nicht alle ausgewählten Eingabefelder. Vielleicht möchten Sie eine Funktion als solche machen:

function foo()
{
   $('input :selected').css(bar);
}

Wenn Sie nun ein Klickereignis für ein Eingabeereignis erhalten, rufen Sie die Leiste an. Möglicherweise müssen Sie Foo ändern, um Ihre Spezifikationen zu erfüllen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top