Ja, es gibt eine bessere Lösung: Du kannst das Eventbubbling durch Aufruf der Funktion stopPropagation unterbinden:
https://developer.mozilla.org/en-US/docs/Web…stopPropagation
Beiträge von Sempervivum
-
-
Crossposting. Hier hast Du bereits Hinweise bekommen, woran es liegt:
http://www.codingforums.com/javascript-pro…n%92t-work.html -
-
Ja, mit document-ready geht es auch.
-
Du musst das Skript hinter die Definition der Inputs legen, sonst sind diese noch nicht definiert, wenn es ausgeführt wird.
Außerdem funktioniert es nicht, wenn Du bei einem Script-Tag sowohl eine src angibst als auch Anweisungen notierst. -
Ich würde dir ja gern helfen, aber dein PHP erschließt sich mir nicht so richtig. Kannst Du vielleicht ein paar mehr Tage hinzu fügen, damit man die Systematik erkennt, und einige Erklärungen?
-
-
-
" Zuvor eine weitere Checkbox auch mit dem neuen Design wo die Doppelklick funktion aber nicht gehen darf."
Auch das ist einfach:Code<input class="dblclick" id="cb1" type="checkbox" value="Opt1"><label for="cb1">Option 1</label><br> <input class="dblclick" id="cb2" type="checkbox" value="Opt2"><label for="cb2">Option 2</label><br> <input class="dblclick" id="cb3" type="checkbox" value="Opt3"><label for="cb3">Option 3</label><br> <input id="cb4" type="checkbox" value="Opt4"><label for="cb4">Option 4</label><br> <script> $("input.dblclick + label").on("dblclick", function () { $("input.dblclick").prop("checked", true); }) </script>Edit: Das Forum verschluckt teilweise die Zeilenumbrüche. Scrolle nach rechts.
-
Auf jeden Fall vor dem Javascript. Am besten im Head.
-
Ich habe beim Testen dein CSS verwendet. Ich habe jQuery benutzt. Hast Du jQuery eingebunden?
-
So funktioniert's:
Code<input id="cb1" type="checkbox" value="Opt1"><label for="cb1">Option 1</label><br> <input id="cb2" type="checkbox" value="Opt1"><label for="cb2">Option 2</label><br> <input id="cb3" type="checkbox" value="Opt1"><label for="cb3">Option 3</label><br> <script> $("input[type='checkbox'] + label").on("dblclick", function () { $("input[type='checkbox']").prop("checked", true); }) </script> -
Dazu müsste man wissen, wie das Umfeld aussieht: Du schreibst: "Doppelklick wählt alle Checkboxen mit gleichem Ziel aus" - wie ist das gemeint? Sind den Checkboxes Links zugeordnet. Am besten postest Du ein kleines Beispiel, wo alles drin ist, was man für die Realisierung braucht.
-
So etwas habe ich schon mehrfach gemacht, indem ich die Checkbox unsichtbar gemacht habe und das neue Symbol in einem Label als Hintergrund gesetzt habe. Den Hintergrund kann man dann auf Grund des :checked umschalten. Dann musst Du natürlich auch das dblclick-Event auf das Label registrieren.
Edit: Ich sehe gerade, dass du das mit dem Label ja schon gemacht hast. Bleibt das Problem mit den Doppelklick: Wie gesagt, du musst den Listener für das Label registrieren und dann durch Navigieren im DOM auf die richtigen Elemente wirken lassen. -
Zitat
Mit dem CSS klappt das so nicht
Hast Du das ausprobiert? Ich schon. In meinem Beispiel-CSS weise ich die Breite dem Label zu und das ist sichtbar.
Zitatwürde es großen Aufwand machen alles umzustellen als Buttons mit gleicher Größe
Das läuft genau auf meinen Vorschlag mit der festen Breite hinaus. Den Text kannst Du mit text-align;center; leicht zentrieren.
-
-
Genau, das ist sehr zu empfehlen. Das Formular zunächst leer lassen, die Bezeichnungen in einem Array ablegen und das HTML des Formulars in einer Schleife generieren:
Code<form id="myform" class="check_LEDs" name="LED_form1"> </form> <script> var leds = ["LED0", "LED1", "LED2"]; // usw. html = ""; for (var i = 0; i < leds.length; i++) { html += '<input type="checkbox" name="' + leds[i] + ' " id="' + leds[i] + '" value="0" onclick="GetCheck(\'' + leds[i] + '\', this)">'; html += '<label for="' + leds[i] + '"><span></span>' + leds[i].replace("LED", "LED ") + '</label>'; } document.getElementById("myform").innerHTML = html; </script> -
-
-
Damit die Datei für alle Besucher, die diese Seite aufrufen, verfügbar ist, müsstest Du sie hochladen. Auswerten geht dann nur serverseitig mit PHP oder clientseitig mit Ajax. Du solltest über einen Wechsel deines Anbieters nachdenken. Solche Beschränkungen sind beim Aufbau einer Wetterseite nicht akzeptabel.