Skip to content

Instantly share code, notes, and snippets.

@Jhony0311
Created June 18, 2015 23:11
Show Gist options
  • Save Jhony0311/26443aa51fa80f41556e to your computer and use it in GitHub Desktop.
Save Jhony0311/26443aa51fa80f41556e to your computer and use it in GitHub Desktop.
Get attached events for a child view in a composite view
'use strict';
var Backbone = require('backbone');
var Marionette = require('backbone.marionette');
var $ = require('jquery');
var templateHelpers = require('../../../common/helpers/HandlebarsHelpers');
var template = require('../templates/PostCardTemplate.hbs');
module.exports = Backbone.Marionette.ItemView.extend({
className: 'grid-element post-card',
template: template,
onRender: function() {
},
});
'use strict';
var Backbone = require('backbone');
var Marionette = require('backbone.marionette');
var $ = require('jquery');
var template = require('../templates/postsGridTemplate.hbs');
var ItemView = require('./PostCardView');
var clickEvent = (window.Modernizr.touch) ? 'touchend' : 'click';
var events = {};
events[clickEvent + ' @ui.moreItems'] = 'moreItem';
module.exports = Backbone.Marionette.CompositeView.extend({
el: '.wrapper',
template: template,
ui: {
moreItems: '#more-items'
},
events: events,
childView: ItemView,
childViewContainer: '.grid-wrapper',
initialize: function() {
console.log('initialize posts grid view');
this.cpage = 0;
this.total_pages = 1;
this.listenTo(this.collection, 'success:fetch', this.render);
},
onRender: function(collection) {
console.log('render post grid');
this.gridBuildAnim();
},
gridBuildAnim: function() {
var speed = 2000;
var container = $('.display-animation');
container.each(function() {
var elements = $(this).children();
elements.each(function() {
var elementOffset = $(this).offset();
var offset = elementOffset.left*0.8 + elementOffset.top;
var delay = parseFloat(offset/speed).toFixed(2);
$(this)
.css("-webkit-animation-delay", delay+'s')
.css("-moz-animation-delay", delay+'s')
.css("-o-animation-delay", delay+'s')
.css("animation-delay", delay+'s')
.addClass('animated');
});
});
},
onChildviewAttach: function() {
console.log('attached');
},
moreItem: function(event){
event.preventDefault();
this.total_pages = this.collection.total_pages;
this.cpage = this.collection.cpage;
console.log('total_pages: ' + this.total_pages);
console.log('cpage: ' + this.cpage);
this.collection.loadMore();
},
animate: function(){
console.log('load more');
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment