Nach dieser jsbin habe ich eine %code% -Liste und eine Schaltfläche. Wenn Sie auf den Button klicken, fügen Sie zu %code% hinzu und ich möchte wissen, welches Ereignis von %code% ausgelöst wurde (update, receive) und wenn Sie das Ereignis gefunden haben, machen Sie etwas für dieses Ereignis.
Wenn der Benutzer zum Beispiel auf %code% button klickt, möchte ich wissen, welches Ereignis ausgelöst wird und etwas für das Ereignis tun. zum Beispiel, wenn Update Feuer mache ich etwas in Update-Methode von sortierbaren
%Vor%Da der Aktualisierungsrückruf als Option des sortierbaren Widgets definiert ist, kann er als solcher durch Aufruf der optionsmethode :
%Vor%Der Updaterückruf erwartet zwei Parameter , die %code% und eine %code% . Der %code% kann auf null gesetzt werden und der %code% muss mit allen Eigenschaften definiert werden, die Ihr %code% erwartet:
%Vor%Das Problem
Wenn Sie den %code% -Rückruf als Teil der Widget-Optionen %code% definieren, wird ein Ereignis namens %code% an das Widget gebunden. Mit anderen Worten, die Callback-Funktion, die durch die %code% -Option definiert ist, wird zwar aufgerufen, aber ein Ereignis mit diesem Namen wird in dieser Situation nicht ausgelöst.
Die Lösung
Wenn Sie das Ereignis manuell auslösen möchten, müssen Sie es auch manuell binden . Beachten Sie, dass das Ereignis auch automatisch vom normalen Verhalten des Widgets ausgelöst wird (z. B. wenn ein Benutzer die Elemente im Widget sortiert).
Zum Beispiel:
HTML
%Vor%JS
%Vor%Ich habe diese HTML-Struktur:
%Vor%Ich lese die div.content Höhe mit:
%Vor%wird 17 (in meinem Testfall)
zurückgebenfunktioniert bisher gut (beim Vergleich mit der tatsächlichen Höhe mit Firebug). das Problem ist - beim Auffüllen von fortlaufendem Text & gt; 2 Zeilen bekomme ich einen falschen Wert. 2 Zeilen geben mir 34 (korrekt), aber 3 Zeilen werden auch 34 zurückgeben, obwohl die tatsächliche Höhe 51 ist. Natürlich, wenn viel Text ausgefüllt wird, ist der resultierende Wert alles falsch. scheint mir ein JQuery-Bug zu sein ... irgendwelche Ideen für einen Workaround? Danke
ps: funktioniert perfekt in IE, Firefox gibt einen falschen Wert zurück.
Verwenden Sie stattdessen %code% .
Wenn Sie -true- in die Klammer einfügen, wenn Sie alle Ränder & amp; Polsterungen auch. %code%
Auch browserübergreifende Höhen können sich unterscheiden, wenn Sie nicht über sehr gute CSS-Resets verfügen oder einen Legacy-Browser (z. B.6 / 7) verwenden, aber bei einem guten Reset sind ihre Unterschiede sehr winzig.