Jquery Mobile Slider Änderungsereignis

8

Ich habe einen jquery mobilen Slider auf einer einfachen Seite. Wenn ich den Schieberegler ziehe, wird der Wert wie erwartet im Textfeld aktualisiert. Ich habe gesucht, kann aber nicht herausfinden, wo diese Logik passiert.

Was ich möchte, ist, den Wert in eine JavaScript-Funktion zu übergeben. Wie kann ich das Änderungsereignis an meine Funktion binden?

Prost

Mike.

Code unten - bitte ignoriere einige böse Hacks:

%Vor%     
Mike James 31.03.2011, 14:34
quelle

10 Antworten

23

Michael. Versuchen Sie, den Schieberegler mit einem anderen Element zu umgeben:

%Vor%

Und Sie können eine Veranstaltung zur Änderung bekommen:

%Vor%     
tmtysk 14.04.2011, 06:21
quelle
7

Das Problem mit Ihrem Code ist, dass das JavaScript, das das Ereignis der Änderung an die Elemente bindet, vor evaluiert wird. Sie wurden tatsächlich in html erstellt, daher wird kein Element an das change-Ereignis gebunden .

Versuchen Sie Folgendes:

%Vor%

Kurz gesagt, live bedeutet, dass JQuery weiterhin Ereignisse an Elemente bindet, die mit dem angegebenen Selektor übereinstimmen, selbst wenn sie zum Zeitpunkt der Auswertung des JS nicht vorhanden waren. Dieser Code bindet also alle vorhandenen und future HTML-Elemente, die # Slider-1-Selektor mit dem richtigen Change-Callback übereinstimmen.

Eine weitere Alternative ist die Verwendung von JQuery 'on', die ein wenig anders funktioniert, aber immer noch die Aufgabe erfüllt. Sehen Sie sich die Dokumentation für 'on' hier an.

    
Erez Rabih 05.07.2012 09:59
quelle
3

Ich schlage vor, w3schools-Tutorial zu diesem Thema zu lesen.

Ссылка

Das entscheidende Stück Code, das Sie vermissen, ist:

%Vor%

Stellen Sie sicher, dass Ihrem Inhalt das Präfix vorangestellt ist:

%Vor%     
zeros-and-ones 22.11.2013 22:24
quelle
1

Verwenden Sie diesen Code,

%Vor%

Setzen Sie type="range" nicht auf Ihre Eingabe-Tags, sondern setzen Sie stattdessen type="text" .

Da Sie die Slider-Funktion manuell aufrufen.

    
nskeskin 11.02.2012 20:48
quelle
1

Die Dokumentation scheint zu fehlen. Nach langem Suchen fand ich, dass, um den neuen Wert im Event-Handler zu bekommen, etwas wie $(this).slider().val() benötigt wird (das extra slider() ist der Teil, der fast überall weggelassen wurde):

%Vor%     
gertiMN 21.04.2012 20:31
quelle
1

Ich hatte das gleiche Problem, zu viele Probleme mit dem Ereignis des Sliders. Endlich fand ich 'slidestop' Event, das großartig funktioniert. Dies ist der Code:

%Vor%

Ich hoffe, das funktioniert für Sie

    
Cristianpark 13.11.2012 00:33
quelle
0

Ich bin mit jQuery mobile nicht so vertraut, aber das Hinzufügen eines Änderungshandlers zum ursprünglichen Eingabeelement sollte Folgendes tun:

%Vor%

Hoffe diese Hilfe,

Martin

    
Hoff 31.03.2011 15:35
quelle
0

versuche das:

%Vor%     
Flori 09.07.2011 09:02
quelle
0

Kürzeste noch und funktional.

%Vor%     
K. Kilian Lindberg 14.04.2013 16:03
quelle
0

Ich benutze diesen Code und es funktioniert in jquery mobile 1.4.3.

%Vor%     
ale 18.08.2014 11:07
quelle