我想隐藏jsPanel窗口,而不是在点击[X]图标时删除DOM。
jsPanel支持jspanelbeforeclose事件。
jspanelbeforeclose
事件并停止进一步操作。jspanelbeforeclose
事件。我认为如果第1步停止,则不会执行第2步功能panel.remove()
。
我的问题是如何正确停止1? (或者如何防止执行panel.remove()
)
我已经测试过以下方法,但都不起作用。
e.stopPropagation();
e.preventDefault();
返回false;
jsPanel代码段
// closes a jsPanel and removes it from the DOM
close: function (panel) {
...
panel.trigger('jspanelbeforeclose', panelID);
...
// remove the jsPanel itself
panel.remove();
...
});
我的代码
$('body').on('jspanelbeforeclose', function(event, id) {
// HOW TO DO
});
答案 0 :(得分:1)
我建议一个更容易的方法。如果你想让关闭按钮隐藏面板而不是关闭它,为什么不把另一个处理程序分配给这个面板的关闭按钮,如
var myPanel = $.jsPanel({
// your panel config ...
callback: function (panel) {
// in the callback get the close button
$('.jsPanel-btn-close', panel)
// remove the standard handler
.off()
// and assign one that hides the panel
.on('click', function(){
panel.hide();
});
}
});
无论何时需要面板,只需致电
myPanel.show();