jmpressjs / jmpress.js

A jQuery plugin to build a website on the infinite canvas
http://jmpressjs.github.com/jmpress.js
1.5k stars 237 forks source link

Overwrite jmpress function #177

Open mkbrv opened 9 years ago

mkbrv commented 9 years ago

Considering the cube example: http://jmpressjs.github.io/jmpress.js/examples/cube/#/front

var cube = $('#cube');
$.jmpress("register", "up", function() {
    var stepData = cube.jmpress("active").data("stepData");
    if(stepData.up)
        cube.jmpress("select", stepData.up);
});

Using AngularJS routing (or simple ajax to bring different views), rebuilding a slider like the one presented above will not work since I cannot overwrite an event.

/**
     * Register a callback or a jmpress function
     *
     * @access public
     * @param name String the name of the callback or function
     * @param func Function? the function to be added
     */
    function register(name, func) {
        if( $.isFunction(func) ) {
            if( methods[name] ) {
                $.error( "function " + name + " is already registered." );
            } else {
                methods[name] = func;
            }
}
FagnerMartinsBrack commented 9 years ago

@mikibrv Do you know a good port or wrapper of jmpress for angular? I started an angular jmpress wrapper for personal purposes because I didn't find any: https://github.com/web-stories/angular-jmpress

mkbrv commented 9 years ago

@FagnerMartinsBrack

I only wrapped angular in a directive: https://github.com/mikibrv/angular-with-grunt/blob/master/src/app/common/jmpress/cube.directive.js

If I would like to dynamically add/remove a slide I can just set a watch for a specific variable and call a method storing the reference to the jmpress object.