Frage

Woche          

DKK

    "Id =" radio2" value = "75" />     

Ich habe Bündel dieser div Eintrag erzeugt durch while-Schleife, so möchte ich dies erreichen: Wenn der Eingang im Inneren Eintrag geklickt I Hintergrundbild des Eintrages div ändern möchten, aber wenn ich ein anderes Radio in einem anderen Eintrag div wählen .. I ‚d wie alle bisherigen Änderungen (wie vorherige Änderung des Hintergrunds) weg zu gehen und .. hier Hintergrund der aktuellen div zu ändern ist, was ich versuchte, Sie hier helfen können, vielleicht zu tun .. ist jquery unter

$("input").click(function() {

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

             });

Etwas nicht richtig funktioniert .. ich meinen Code inst‘überhaupt arbeitet .. kann mir jemand helfen? danke


Ich habe versucht, beide diese:

$("input").click(function() {
                 $("input").each(function() {
                     if (this.checked) {
                         $(this).parent("div").addClass("highlight");
                     }
                     else {
                         $(this).parent("div").removeClass("highlight");
                     }
                 });
             });

und

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

aus irgendeinem Grunde seine nicht funktioniert nicht den Hintergrund zu ändern, vielleicht hat es etwas mit dem Code zu tun oben ist hier das komplette Skript:

 <script type="text/javascript">

         $(document).ready(function() {

             $(".left_navigation a:last").toggleClass('bolder');


             $("input").each(function() {
                 var element_value = $(this).val();
                 $(this).prev("p").append(" " + element_value + ",-");
             });


             $("input").click(function() {
                 $("input").each(function() {
                     if (this.checked) {
                         $(this).parent("div").addClass("highlight");
                     }
                     else {
                         $(this).parent("div").removeClass("highlight");
                     }
                 });
             });




         });

</script>
War es hilfreich?

Lösung

Das erste unmittelbare Problem, das ich sehe, ist, dass Ihre jQuery einen }); am Ende fehlen es, wenn Sie es gerade dort vergessen einzufügen. Das würde es daran hindern, etwas zu tun, andere als einen Fehler zu werfen ...

Dies ist eine vereinfachte Version von euch schon einmal ausprobiert hat. Es könnte zumindest machen debuging etwas leichter.

<script type="text/javascript">
$(document).ready(function(){
    $("input").click( function() { 
         $("input").parent("div").removeClass("highlight");
         $(this).parent("div").addClass("highlight");
      });
  });
</script>

Obwohl ich sehe nichts offensichtlich falsch über das, was Sie versucht, vor dem macht mich zu fragen, ob $("input") ist passend, was Sie denken, es ist. Ich würde einige Dinge in Ihrer Klick-Funktion für geistige Gesundheit Überprüfung wahrscheinlich zumindest warnen. Ich habe festgestellt, tatsächlich ein paar Mal, dass meine $(document).ready Brennen wurde, bevor ich dachte, es wäre das heißt, bevor meine Eingaben wegen meines Rahmen bereit waren ...

Andere Tipps

Es gibt mehrere Probleme:

  • Sie benutzen Toggle und Toggle-Funktion:
  

Wenn sie gezeigt werden, Makeln macht sie   versteckt (mit der Haut-Methode). Wenn   sie versteckt sind, Makeln macht sie   gezeigt (die Show-Methode).

Sie sollten fragen, ob das Radio aktiviert ist

  • Sie sollten die jede Funktion, aufrufen, um die anderen Funk div Werte

  • zu ändern
  • Sie sollten die $(document).ready() Funktion aufrufen

Die Probe ( Achtung: Javascript ist nicht meine beste Waffe ):

<script>
$(document).ready(function(){
    $("input").click( function() { 
         $("input").each(function() { 
             if (this.checked) {
                $(this).parent("div").css("background-color", "green") }
             else {
                $(this).parent("div").css("background-color", "red")}
          });
      });
  });
</script>

. Hinweis: Ich habe für eine bessere Prüfung backgound-Farbe verwendet, aber Ihre Nutzung des Hintergrunds ist gut

Sie müssen möglicherweise ‚background-image‘ statt nur ‚Hintergrund‘ verwenden, um die Bilder zu setzen.

edit:. Dachte, ich hätte, würde Ärger mit dem ‚Hintergrund‘ CSS-Eigenschaft in jQuery vor, aber es auf verschiedenen Browsern nur getestet haben, es war ich entweder falsch oder es wurde behoben in jQuery Versionen scheint, da ich mit ihm gearbeitet

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