Javascript 创建第二个jsPanel时,会显示隐藏的jsPanel
我有以下事情让我感到困惑,不知道是否有人遇到过。我使用的是jsPanel 4.11.3。在这里的代码示例中,我删除了大量用于自定义两个不同面板的选项。在页面加载过程的早期,我有:Javascript 创建第二个jsPanel时,会显示隐藏的jsPanel,javascript,jquery,Javascript,Jquery,我有以下事情让我感到困惑,不知道是否有人遇到过。我使用的是jsPanel 4.11.3。在这里的代码示例中,我删除了大量用于自定义两个不同面板的选项。在页面加载过程的早期,我有: jsPanel.create({ border: '#0574A3 inset', borderRadius: 5, content: document.getElementById('layerSelectPanel'), //j
jsPanel.create({
border: '#0574A3 inset',
borderRadius: 5,
content: document.getElementById('layerSelectPanel'), //jsPanelContent holder,
id: 'panelLayerSelect',
});
然后使用以下功能将第一个面板切换到隐藏模式:
function panelLayerSelectToggle() {
var toggleZ = ($("#panelLayerSelect").css('z-index')) * -1;
$("#panelLayerSelect").css('z-index', toggleZ);
}
用户可以通过一个按钮调用和关闭该面板,使其显示出来,以便选择要显示的层(这是一个使用传单、esri.传单、javascript、jquery和许多传单插件完成的地图应用程序)。页面中的layerSelectPanel元素是在标记中定义的内容占位符,并在页面加载期间动态填充。这一切都很好。但是,现在,当用户单击某个位置以显示该位置的标识信息时,我添加了第二个jsPanel。下面是正在创建的第二个:
jsPanel.create({
border: '#0574A3 inset',
borderRadius: 5,
content: contentHTML,
id: 'panelIdentified',
});
这种情况发生在一个函数中,该函数与用户进行的一次单击隔离,以调用标识信息,该信息根据用户单击的位置填充到contentHTML字符串变量中。如果创建此面板时panelLayerSelect jsPanel隐藏在地图下(z索引为负),则代码中没有的内容会触发z索引返回正数,以便两个面板都显示
现在我最好的答案是在每次创建第二个之后立即在第一个上运行切换功能。但我想一定有更好的方法,所以…蜂巢思维…一个想法
更新:目前的工作解决方案是在创建第二个面板之前捕获第一个面板的z索引,然后在创建第二个面板后立即重新应用它。但是…现在如果我只需单击第二个面板上的任意位置…第一个面板的z索引将再次更新并允许它显示。Event.stopPropagation()不会阻止此事件的发生