Skip to content

Instantly share code, notes, and snippets.

@travishen
Last active July 2, 2018 09:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save travishen/6abfd4168cb740dee4c1b81c264c19d1 to your computer and use it in GitHub Desktop.
Save travishen/6abfd4168cb740dee4c1b81c264c19d1 to your computer and use it in GitHub Desktop.
Smart admin jarvismenu dynamically insert elements and re-init
/*
* Source plugin: https://gist.github.com/kigamuka/1cd8360ae4a0f13c2b33
* Issue to solve: Scripting too many left nav multi-level items(over 20000+)
cause bad performance, need load element dynamically
* =======================================================================
* Example UI:
<ul>
<li>
<a id="target" href="#">parent anchor<b class="collapse-sign"><em class="fa fa-minus-square-o"></em></b></a>
// INSERT UL HERE...
</li>
</ul>
*/
$('nav a').click(function(){
var $this = $(this);
if($this.data('load-element'))
return;
var ul = $('<ul><li><a>new child anchor</a>'); // GET UL BY AJAX HERE...
ul.insertAfter($this);
// UNBIND
$this.closest('ul').find('li a').unbind('click');
$this.closest('ul').find('b').remove();
// RE-INITIALIZE UL
$this.closest('ul').jarvismenu({
accordion : true,
speed : $.menu_speed,
closedSign : '<em class="fa fa-plus-square-o"></em>',
openedSign : '<em class="fa fa-minus-square-o"></em>'
});
$this.attr('data-load-element', true);
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment