もちろん、要素が存在することを確認しました。
その要素の値を読み取れることも確認しました。
ただし、ページへの出力に関する限り、効果はありません (要素は表示されません)。
// debug verificatoin
alert('debug on: domMenu.drop_down_element.style.visibility: ' + domMenu.drop_down_element.style.visibility );
// write action
domMenu.drop_down_element.style.visibility = 'visible';
コードは次のとおりです...最初の実行では機能しますが、その後は失敗します..javaScriptのロジックの問題だと思います...これは古いコードです..そして奇妙なスタイルを持っていました.
var domMenu =
{
TIME_DELAY: 1000,
time_out_id: 0,
drop_down_element: 0,
top_mouse_over: function ( id )
{
if( !domMenu.drop_down_element )
{
domMenu.drop_down_element = document.getElementById( 'wrap_drop_down_new' );
domMenu.top_element = document.getElementById( 'top_new' );
}
clearTimeout( domMenu.time_out_id );
domMenu.show_menu();
},
bottom_mouse_over: function()
{
clearTimeout( domMenu.time_out_id );
},
mouse_out: function()
{
domMenu.time_out_id = setTimeout( domMenu.hide_menu, domMenu.TIME_DELAY );
},
hide_menu:function()
{
domMenu.drop_down_element.style.visibility = 'hidden';
domMenu.top_element.style.border = '1px solid #faf7f7';
},
show_menu:function()
{
alert('debug on: domMenu.drop_down_element.style.visibility: ' + domMenu.drop_down_element.style.visibility );
domMenu.drop_down_element.style.visibility = 'visible';
domMenu.top_element.style.border = '1px solid #cfcaca';
domMenu.top_element.style.borderBottom = '3px solid #cfcaca';
}
};
答え
これは状態の問題だったので、メニュー要素を引っ張り続けました。これは、私が理解していない問題に対するハック修正です。
var domMenu =
{
TIME_DELAY: 1000,
time_out_id: 0,
drop_down_element: 0,
top_mouse_over: function ( id )
{
domMenu.drop_down_element = document.getElementById( 'wrap_drop_down_new' );
domMenu.top_element = document.getElementById( 'top_new' );
clearTimeout( domMenu.time_out_id );
domMenu.show_menu();
},
bottom_mouse_over: function()
{
clearTimeout( domMenu.time_out_id );
},
mouse_out: function()
{
domMenu.time_out_id = setTimeout( domMenu.hide_menu, domMenu.TIME_DELAY );
},
hide_menu:function()
{
domMenu.drop_down_element.style.visibility = 'hidden';
domMenu.top_element.style.border = '1px solid #faf7f7';
},
show_menu:function()
{
// alert('debug on: domMenu.drop_down_element.style.visibility: ' + domMenu.drop_down_element.style.visibility );
domMenu.drop_down_element.style.visibility = 'visible';
domMenu.top_element.style.border = '1px solid #cfcaca';
domMenu.top_element.style.borderBottom = '3px solid #cfcaca';
}
};