Erfassen scroll-Ereignis auf div
Ich versuche zu erfassen, das scroll-Ereignis innerhalb der Wirbelsäule.Marionette.CompositeView, aber ohne Erfolg.
Als übung, ich bin umschreiben http://www.atinux.fr/backbone-books/ mit Rückgrat.Marionette. Wie Sie sehen können, wenn Sie nach unten scrollen, mehr Bücher werden heruntergeladen und angezeigt (d.h. unendlichen scrollen). Allerdings bin ich nicht in der Lage zu erfassen, das scroll-Ereignis auf meiner Sicht.
Hier meine (vereinfachte) code:
LibraryView = Backbone.Marionette.CompositeView.extend({
//properties, initializer, etc.
events: {
'scroll': 'loadMoreBooks',
'click': 'loadMoreBooks'
},
//some functions
loadMoreBooks: function(){
console.log("loadMoreBooks");
}
});
Den vollständigen source-code kann hier eingesehen werden: https://github.com/davidsulc/backbone.marionette-atinux-books/blob/scroll/assets/javascript/app.js#L86-89
Was ich nicht verstehe, ist, dass das "click" - Ereignis wird ausgelöst, richtig, aber der "scroll" - Events nicht. Was mache ich falsch?
Edit: also der Fehler war ganz einfach am Ende... ich wurde übergeben "el: #Inhalte" zur Ansicht contructor, aber die Rolle war definiert in der CSS bei ".Bibliothek". Also erst einmal, ich habe meinen DOM von
<div id="content">
<div class="library">
</div>
</div>
zu
<div id="content" class="library"></div>
alles funktionierte einwandfrei...
InformationsquelleAutor David Sulc | 2012-04-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser code funktioniert bei mir:
Überprüfen Sie die jsFiddle
Als @JoshLeitzel sagte, ich glaube, das Problem ist in der DOM-Elements selbst.
Versuchen, durch die pass-Backbone zu tun:
Auch versuchen zu ersetzen:
durch
Ich glaube nicht, dass dies das Problem aber ist der neue Stil der
el
definition 🙂InformationsquelleAutor fguillen
Rückgrat befestigt, top el element zu suchen alle Veranstaltungen. Einige DOM-Ereignisse werden nicht gequasselt, übergeordnete Elemente und dazu gehört Blättern. Das click-Ereignis funktioniert, weil es nicht Blase.
Ref: http://www.w3.org/TR/2009/WD-DOM-Level-3-Events-20090908/#event-type-scroll
InformationsquelleAutor Chris Smith
Ich weiß nicht, was Ihr
el
ist, aber ich vermute, es ist etwas, das nicht erhaltenscroll
Veranstaltung. Seit Backbone-delegates-Ereignisbehandlung mit jQuery, haben Sie einen Blick auf, was jQuery sagt über diescroll
- Ereignis:Sei denn, Ihr
el
erfüllt diese Bedingungen, es wird nichtscroll
Veranstaltung. Sie haben, um den event-handler aufwindow
oder ein anderes element, hat es erhalten.el
ist ein div mit fester Höhe undoverflow-y
eingestelltscroll
. In anderen Worten, es sollten erhalten Sie die scroll-Ereignis. Jede andere Idee, was falsch sein könnte?ALSO am Ende, der container war ich verbindlich war nicht die gleiche wie die, die ich zu definieren, die ein Blättern auf (siehe mein edit). Aber ein upvote für deine Hilfe 😉
InformationsquelleAutor Josh Leitzel