将`destroy`方法添加到Snap.js移动面板插件中

时间:2014-10-09 22:03:32

标签: javascript jquery jquery-mobile

如何向Snap.js移动面板添加destroy方法?如果只是删除它设置的数据/参考,那么最好的方法是什么?

https://rawgit.com/jakiestfu/Snap.js/v2.0.0-rc1/src/snap.js

基本上我需要能够在jQuery Mobile page change重新初始化之前将其关闭 - 否则它只能在第一页上运行:

http://jsfiddle.net/frank_o/L3dkmkrx/1/

1 个答案:

答案 0 :(得分:2)

以下代码克隆 Snap Panel ,将其置于当前页面之前,然后pagecontainershow上初始化

$(document).on("pagecontainershow", function (e, data) {

    var drawer = $(".snap-drawers").clone(); /* clone */
    $(".snap-drawers").remove();             /* remove */
    $(data.toPage).before(drawer);           /* place it before page */
    var snapper = new Snap({                
        element: $(data.toPage)[0]           /* initialize it */
    });

    $('.open-panel')                         
        .off("click")                       /* remove previous click listener */      
        .on("click", function () {          /* re-bind click */
        snapper.open('left');
    });

    $('.close')                             
        .off("click")                       /* remove previous click listener */  
        .on('click', function () {          /* re-bind click */
        snapper.close();
    });
});
  

Demo - Code