2016-04-13 4 views
0

Im folgenden Link habe ich eine Probe meiner Quellcode angehängt:JQuery Mobile Bug mit scrollTop

http://jsfiddle.net/xY7tx/2381/

Ich habe eine Liste von 34 Einzelteilen, wenn Sie die Tastatur nach unten drücken, und Sie erreichen den 10. Artikel würde es erfolgreich scrollTop zu 11. Element. Aber wenn du weiter drückst und wenn du das 20. Item erreichst, sollte es mit meinem Code scrollTop zum 21. Item werden, aber das ist es nicht.

Um den Fehler zu reproduzieren, halten Sie bitte auf der Tastatur gedrückt und achten Sie auf den 20. ---> 21. Item, was nicht wünschenswert ist (und vergleichen Sie mit 10. -> 11. Item Änderung, was wünschenswert ist).

Wenn ich einen Fehler gemacht habe, entschuldige mich bitte und bitte zeigen Sie mir im Quellcode, welche Änderung ich machen sollte, so dass bei Änderung des 20. bis 21. Items auch scrollTop. Vielen Dank!

Edit: Dank ezanker. Mit seiner Antwort kann ich jetzt scrollenTop zu dem Punkt 21, aber immer noch gibt es ein Problem, wenn ich scrollen möchteTop t das 31. Element, noch funktioniert es nicht mit dem aktuellen Code. bitte drücken Sie auf der Tastatur bis zum 31. Punkt, Sie würden das Problem sehen.

Antwort

2

Das Problem ist, dass Sie

var container = $('div'), 

aber jQuery Mobile erstellt automatisch eine Seite div um Ihren Code zu wickeln setzen, wenn Sie nicht explizit die div liefern kann. Ändern Sie ihn auf

var container = $('#listAddr'), 

Aktualisiert FIDDLE

+0

mit Ihren Änderungen 20. bis 21. Artikel ändert Werke als Wunsch, aber wenn ich nach unten gedrückt halten, 30. bis 31. Artikel nicht scrollTop als Wunsch. Bitte drücken Sie weiter, bis Sie den 31. Punkt erreichen. Dort gibt es immer noch ein Problem mit Ihrem aktualisierten Code. – Jack

+0

@Jack, das ist, weil Sie nur 34 Elemente haben. Sie können nicht über die Höhe der Liste hinausrollen. Ich nehme an, du kannst unter der Liste leere Gegenstände oder ein leeres Div hinzufügen ... – ezanker