Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision f37d07f4

Von Sven Schöling vor fast 13 Jahren hinzugefügt

  • ID f37d07f4dde92fb1bd1cc6a8719b6b7c65b97130
  • Vorgänger 4e940c56
  • Nachfolger 2438aa42

Javascriptmenü: Eventhandling korrigiert

Der originale Ansatz war Handler einfach an irgendwas dranzuklatschen, und
durch neue zu ersetzen wenn sich ein State geändert hat.

Jetzt gibts es 3 Handler, die einen Großteil der Aufgaben übernehmen:
- changeMenuBarState (auf und zuklappen, bei Topmenü Klick)
- hideSubMenus (bei Klick auf alles, was nicht changeMenuBarState triggert)
- unsetMenuBarState (Klick auf alles was Menü unkonditional schließt)

Unterschiede anzeigen:

js/dhtmlsuite/menu-for-applications.js
2343 2343
	// }}}	
2344 2344
	,
2345 2345
    unsetMenuBarState : function() { this.menuBarState = false },
2346
    changeMenuBarState: function (target) {
2347
	   var parentId = target.id.replace(/[^0-9]/gi,'');
2348
	   this.menuBarState = !this.menuBarState;
2349
       this.hideSubMenus();
2350
	   if(this.menuBarState) {
2351
	   	this.__expandGroup(parentId);
2352
       }
2353
    },
2346 2354
	// {{{ __setBasicEvents()
2347 2355
    /**
2348 2356
     *	Set basic events for the menu widget.
......
2352 2360
     */	
2353 2361
	__setBasicEvents : function()
2354 2362
	{
2355
		DHTMLSuite.commonObj.addEvent(document.documentElement,"click",this.hideSubMenus);		
2356 2363
        var menu = this;
2357
        $(document).mousedown(function(){ menu.unsetMenuBarState(); });
2364
        $('div.DHTMLSuite_menuBar_sub').click(function() { menu.hideSubMenus(); menu.unsetMenuBarState() });
2365
        $('div.DHTMLSuite_menuBar_top > div > div[objectref!="0"]').click(function() { menu.changeMenuBarState(this) });
2366
        $('div.DHTMLSuite_menuBar_top').click(function(e) {
2367
          if ($(e.target).attr('class') == 'DHTMLSuite_menuBar_top') { menu.hideSubMenus(); menu.unsetMenuBarState() }
2368
        });
2358 2369
        $('#win1').load(function(){
2359 2370
            $('#win1').contents().mousedown(function(){
2360 2371
                menu.hideSubMenus();

Auch abrufbar als: Unified diff