Ankündigung

Einklappen
Keine Ankündigung bisher.

Eigenes Checkbox Control und Events dazu... aber wie?

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Eigenes Checkbox Control und Events dazu... aber wie?

    Hallo zusammen,

    ich brauche in meinem PHP-Projekt eine nullable Checkbox, also Status true, false und null. Außerdem soll diese Checkbox nicht dem Default-Design entsprechen sondern eine angepasste Optik haben.
    Soweit, so gut. Das Design habe ich mit CSS gelöst und das klappt auch. Die originale Box ist Hidden.
    (ich werde so bald wie Möglich den Code dazu auf Fiddle packen. Da ich am Entwickler-PC kein Internet habe, muss ich alles abtippen )

    Ich arbeite mit JQuery und verwende folgende Einstellungen für die Box: .attr("state",<status>) .prop("indenterminate",true|false) .prop("checked",true|false)

    Ich habe zwei Funktionen gebaut: setState und toggleState.

    Außerdem habe ich ein EVENT registriert:
    Code:
    $('input[type="checkbox"]').on('click',toggleState);
    toggleState liest .attr("state") aus, entscheidet den neuen Status (zB. von True auf False) und ruft setState(newState) auf.
    setState setzt je nach Parameter die drei oben genannten Einstellungen.

    Folgende Fragen habe ich:

    Funktionsaufruf:
    Ich rufe die Funktion zur Statusänderung (setstate) so auf:
    Code:
    setState.call(element,newState);
    Wie muss ich eine Funktion bauen dass ich den Aufruf so gestalten kann:
    Code:
    $(element).setState(newState);
    Event im IE:
    im Chrome klappt alles soweit... Click triggert Event -> State holen -> neuer State setzen -> passt
    Im IE passt das mit dem Ablauf nicht. Hier scheint der IE das Event auf der Box auszuführen BEVOR meine Funktion startet und den State auslesen kann. Der State ist dann immer schon durch den default des IE verändert.
    Wie kann ich das umgehen?

    Reihenfolge:
    In manchen Formularen in denen ich diese CheckBox einsetze, soll nach dem Ändern (.on('change')) eine Aktion ausgeführt werden.
    Wie sorge ich für diesen Ablauf: Click-Event -> State holen -> neuer State setzen -> change-Event -> Individuelle Aktion ??


    Danke für Eure Antworten
    Mike

    Update: https://jsfiddle.net/mikexmagic/3wohfyk6/36/



















Lädt...
X