私はオンとオフを交互に切り替えている複数のdivがあります。私は当初ハンドラを手作業でバインドしていました(以下のコードに従って)が、いくつかのリファクタリングを行うことに決めました。しかし、ハッシュの最後のキー/値が常に選択されているところで、バインディングの問題が発生しました。このコード例では、contact_data divになります。問題は、データが閉じられていないということですが、JSでこれを強制する方法はわかりません。実際問題は、データをjQueryをハッシュでループすることでイベントをクリックするハッシュで最後の要素を取得しますか?
var link_div = {
"#about_toggle" : "#about_stuff",
//more pairs
"#contact_toggle" : "#contact_data"
};
/*
* Before refactoring:
$("#about_toggle").click(function()
{
$("#about_stuff").toggle();
});
*/
//After
for(var key in link_div)
{
$(key).click(function()
{
alert(link_div[key]);
toggle_on_element(link_div[key]);
});
}