[jQuery] parse spinner & co not directly via template

Message

Siehe die bitte [url='https://eqdkp-plus.eu/forum/Thread/2051-Awards-Plugin/?postID=25310#post25310']Hier[/url],.. so wäre es wünschenswert wenn man ans jQuery Zeug auch direkt rankommt, und es nicht (immer) direkt ans Template geht.. Da ich [tt]new hspinner[/tt] später via AJAX nachlade, musste ich ein workaround basteln und konnte nicht direkt die hspinner class anwenden oder [tt]$this->jquery->spinner[/tt] (multiselects) etc.

Comments 9

  • Das an sich zu machen, ist kein Problem. Aber: du musst ja den JQ-Code auch irgendwo ausführen, den du bekommst. Wenn du per Ajax einfach Script-Tag zurückbekommst, weiß ich nicht, ob der dann auch direkt ausgeführt wird.

  • Hmm gute frage, aber mein Workaround funktioniert ja in einer ähnlichen weise.
    Ich erstelle mit new htext mein Input, und verpass diesem Input eine Hash_ID welche ich dann mit einem beigefügtem script-tag wie $('Hash_ID').spinner(); initialisiere, aber dann muss ich teils im htext min/max parameter übermitteln teils in dem js code, es braucht ne hash_id etc.


    Aber ja vermutlich würde das nicht immer automatisch ausgeführt werden und es brauch weiterhin script tags , hmm.

  • was ist mit dem hier? Lösungsansätze? Ich verstehe das Problem nicht ganz.. Wenn du per ajax was machen willst, führt ja eh kein weg an eigenem jquery code vorbei? Oder verstehe ich da was falsch..?

  • Benutzung von HTML widgets. Dort wird jquery Code direct ans template übergeben, z.b bei Spinner. Lädt man jetzt solche widgets per ajax, bekommt man nur HTML, und kein Javascript, weil dies ja direct ans template übergeben wird. Ergo sollte es möglich sein, auch über ajax an das Javascript zu kommen. Dafür muss jquery das wuf Wunsch zurückliefern anstatt nur direkt ans Template zu liefern.

  • puh... und was betrifft das alles? Und wie soll ich das übergeben? Also wohin? gibt es da schon eine Ausgabe? Hast du mir ein Beispiel für ein HTML Widget? Kann mir das grad schlecht vorstellen. Wir reden aber nicht von den portal modalen?

  • Hmm also so spontan, bin ich wie God auf sein Ansatz gekommen.


    Man ruft die gewünschte Aktion auf new hspinner oder direkt über this->jquery->spinner...
    Gibt entsprechend seine gewünschten Optionen des Spiners/etc an und kann über ein parameter "extern" bestimmen ob das zugehörige JS Zeug direkt ans Template geht oder mit returned wird mitsamt dem html Code.


    Aktuell erhällt man bei new hspinner('my_spin', array('min' => 5, 'max' => 100, 'step' => 5)) nur den HTML Code <input type=text aria-min=5 aria-max=100 aria-step=5 /> als beispiel.
    ............
    Wenn man nun ... 'step' => 5, 'extern' => true)) mitgeben könnt und ein return resultat erhält wie ..
    <script>$('my_spin').spinner({min:5,...})</script><input type=text aria-min=5 ... />.
    bräuchte man selber nichts weiter hinzugeben oder ähnlichem(siehe das umständliche workaroung später in git).


    Eine derzeitige Fall Anwendung findet sich zb bei meinem Awards Plguin, Cronmodule siehe dingsda hier Dabei wird die Funktion aufgerufen und wirft via Ajax es zurück, aufgrund dessen muss ich für ein Spinner: new htext + einen script teil anlegen zu jedem gewünschtem Element.


    Aktuell betroffen sind damit alle Input arten welche mit jQuery überarbeitet werden, auf anhieb kann ich dir "multiselect" und "spinner" nennen, würde aber vermutlich color/time-picker, etc mit betreffen.

  • werde das heute in einen seperaten branch mit dem sinnigen namen "jq return", bitte dann testen. Ich habe erstmal die htext eingebaut. Heist: colorpicker, autocomplete und placepicker. Wenn das geht dann bau ich mehr ein.