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

Popular posts from this blog

user interface - How to replace the Python logo in a Tkinter-based Python GUI app? -

objective c - Greedy NSProgressIndicator Allocation -

how to set an OCR language in Google Drive -