EasyUI Forum

General Category => EasyUI for jQuery => Topic started by: jega on September 02, 2021, 03:46:59 AM



Title: Menu removeItem
Post by: jega on September 02, 2021, 03:46:59 AM
Hi

Have this code to add dynamically menu items

<div id="menu_administration" class="easyui-menu">
   <div id="adm1" data-options="iconCls:'icon-task_scheduler'">   
      <span>Scheduler</span>
         <div>
            <div data-options="iconCls:'icon-log'">
               <span>Scheduler log</span>
            </div>
         </div>
   </div>
</div>

Calling function getFilesListToMenu('scheduledlog','menu_administration','Scheduler log')  to fill the span Scheduled log with all filenames in folder.

This works perfect.

function getFilesListToMenu(filePath,topMenu,subMenu){
   $.ajax({
            url: 'getsystemfromdb.asp?st=filelist&filepath='+filePath,
            type: 'get',
            cache:false,
            data: {
            },
            success: function(data){
      filesData = data[0].children;
      $.each(filesData, function(index, element){
         var item = $('#'+topMenu).menu('findItem', subMenu);
         $('#'+topMenu).menu('appendItem', {
            parent: item.target,
            text: element.name,
            iconCls: element.iconCls,
            onclick: function(){
               window.open(filePath+'/'+element.name+'?'+Date.now())
            }
         });
      });
            }               
        });
}


When there comes a new file in the scheduledlog folder i will call the function again, but before, all items must be removed.

Have tried several things with removeItem, but can't get it to work.


Any help ?? Maybe a new function with topMeny and subMenu parms that do the trick

Jesper


Title: Re: Menu removeItem
Post by: jega on September 05, 2021, 01:41:39 AM
Anyone that has a solution is welcome.

;-)


Title: Re: Menu removeItem
Post by: jarry on September 06, 2021, 12:48:50 AM
Please try this code to remove all the items.
Code:
var mm = $('#mm');
mm.children().each(function(){
mm.menu('removeItem', this);
})


Title: Re: Menu removeItem
Post by: jega on September 06, 2021, 01:18:18 AM
Hi Jerry

Adding items to <span>Scheduler log</span> and only want to remove these items again, before adding new

Using your code, i can't remove them. But i can remove all menus with var mm = $('#menu_administration');

Have tried <span id="scheduleLogHolder">Scheduler log</span> and var mm = $('#scheduledLogHolder'); Nothing happens here, items still there



Title: Re: Menu removeItem
Post by: jega on September 06, 2021, 12:37:59 PM
Hi

Found a solution. Maybe not the best, but works

Added id="schedulerItems"

<div id="menu_administration" class="easyui-menu">
   <div id="adm1" data-options="iconCls:'icon-task_scheduler'">   
      <span>Scheduler</span>
         <div id="schedulerItems">
            <div data-options="iconCls:'icon-log'">
               <span>Scheduler log</span>
            </div>
         </div>
   </div>
</div>

Calling this function

function refreshSchedulerLog() {
   //Remove "Scheduler log" menu. All submenus will also be removed
   var item = $('#menu_administration').menu('findItem', 'Scheduler log');  // find the menu item
   $('#menu_administration').menu('removeItem', item.target);
   
   //Add new empty "Scheduler log" menu
   $('#schedulerItems').menu('appendItem', {
      text: 'Scheduler log',
      iconCls: 'icon-task_scheduler'
   });
   
   //Reload filelist menu items
   getFilesListToMenu('scheduledlog','menu_administration','Scheduler log')
}