DreamWeaver で Web サイトを作成しています。Spry ウィジェットを使用しました。Spry ウィジェットはナビゲーション用のサイドバーであり、クリックしてタブを開閉できます。複数のタブを開くことができますが、これは私があまり好きではありません。新しいタブが開かれているときに、開いているタブを閉じたいと思います(したがって、開いているタブは常に1つだけになります)。私は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();
}
};
そのため、前の関数からこの関数を呼び出すことで (何百万ものタブがないと仮定すると、大きな 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でコーディングしたことがないので、エラーがどこにあるのかわかりません。