Jquery mouseenter event hangs if fired on pageload -
i use jqueries mouseenter/mouseleave functions on elements.
on mouseenter content gets loaded on ajax , add menu elemet. on mouseleave menu disappears.
if hover elements while page rendering menus don't disappear. stay visible. can't reproduce demo code.
any suggestions? problem .data()?
$(document).on('mouseenter', '._hoverflow', channels.smallmenu ); $(document).on('mouseleave', '._hoverflow', channels.smallmenu ); togglemenu: function(p,i){ if( p.data('loaded') === true ){ if( p.data('visible') === true ){ i.stop(true,true).fadeout('fast'); p.removeclass('fadet').data('visible',false); } else{ i.stop(true,true).fadein('fast'); p.addclass('fadet').data('visible',true); } return true; } return false; }, smallmenu: function(a){ var p = $(this), cid = parsefloat( p.data('id') ), = p.find('.channel-dropdown'); if( channels.togglemenu(p,i) ){ return false; } p.addclass('fadet').data('loaded',true).data('visible',true); var s = $.post( channels.vars.details, { id: cid } ); s.done(function(data){ channels.menutemplate( data, cid ).appendto(p).stop(true,true).fadein('fast'); }); },
i think problem after have set p.data('loaded', true) can't toggle visible state because of p.data('loaded') === true check in togglemenu.
move logic around can toggle visibility load content once:
togglemenu: function(p,i){ if( p.data('visible') === true ){ i.stop(true,true).fadeout('fast'); p.removeclass('fadet').data('visible',false); } else{ i.stop(true,true).fadein('fast'); p.addclass('fadet').data('visible',true); } }, smallmenu: function(a){ var p = $(this), cid = parsefloat( p.data('id') ), = p.find('.channel-dropdown'); // toggle menu visibility. channels.togglemenu(p,i); // load content once. if( p.data('loaded') === true ){ return false; } p.addclass('fadet').data('loaded',true).data('visible',true); var s = $.post( channels.vars.details, { id: cid } ); s.done(function(data){ channels.menutemplate( data, cid ).appendto(p).stop(true,true).fadein('fast'); }); }
Comments
Post a Comment