我正在使用 DreamWeaver 创建一个网站,我使用了一个 Spry 小部件,它只是一个用于导航的侧边栏,可让您通过单击来打开和关闭选项卡。你可以打开多个标签,这是我不太喜欢的。我希望它在打开新选项卡时关闭打开的选项卡(所以你总是只有一个打开的选项卡)。没用过javascript编程,看了一下js文件的代码,修改起来也不是太难。在这里你有它: http: //pastebin.com/eZAYE0kZ
我看到打开选项卡时执行的功能是
Spry.Widget.CollapsiblePanel.prototype.onTabClick = function(e)
{
if (this.isOpen())
this.close();
else
{
this.open();
}
this.focus();
return this.stopPropagation(e);
};
,所以我认为正确修改这个,我可以让它关闭打开的那个。另外,我意识到底部有一个功能,它的目标是关闭所有选项卡(或面板),
Spry.Widget.CollapsiblePanelGroup.prototype.closeAllPanels = function()
{
var cpanels = this.getPanels();
var numCPanels = cpanels.length;
for (var i = 0; i < numCPanels; i++)
{
var w = this.getElementWidget(cpanels[i]);
if (w && w.isOpen())
w.close();
}
};
所以我认为通过从前一个函数调用这个函数(假设我没有像 Millons 那样的选项卡,所以它不会做一个大的 bucle),我可以找到打开的选项卡,然后关闭它。所以我修改了第一个,
Spry.Widget.CollapsiblePanel.prototype.onTabClick = function(e)
{
if (this.isOpen())
this.close();
else
{
this.closeAllPanels();
this.open();
}
this.focus();
return this.stopPropagation(e);
};
但它现在甚至没有打开标签。我不知道错误在哪里,因为我从未用 Javascript 编写过代码。