EasyUI Forum
May 16, 2024, 12:53:45 AM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Menu removeItem  (Read 4007 times)
jega
Full Member
***
Posts: 190


View Profile
« 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
Logged
jega
Full Member
***
Posts: 190


View Profile
« Reply #1 on: September 05, 2021, 01:41:39 AM »

Anyone that has a solution is welcome.

;-)
Logged
jarry
Administrator
Hero Member
*****
Posts: 2264


View Profile Email
« Reply #2 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);
})
Logged
jega
Full Member
***
Posts: 190


View Profile
« Reply #3 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

Logged
jega
Full Member
***
Posts: 190


View Profile
« Reply #4 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')
}

Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!