Changeset 500

Show
Ignore:
Timestamp:
08/28/06 08:38:09
Author:
piv
Message:

correct ie hovering

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • qPloneTabs/trunk/skins/qPloneTabs/javascripts/qplonetabs.js

    r499 r500  
    1 var gBeforeReorderFragment = null; 
    2 var gBeforeEditData = {}; 
     1/* Global variables */ 
     2 
     3var gBeforeReorderFragment = null;  // document fragment for insertion in UL after clicking cancel button after reorder 
     4var gBeforeEditData = {};  // hash for storage tabs fields before editing 
     5 
     6/* Main part - rules for element on our form */ 
    37 
    48var myrules = { 
     
    3135           new Effect.Highlight('tabslist',{}); 
    3236         }, 
    33          onComplete: function(request){ 
    34            $A($('tabslist').getElementsByTagName('LI')).each(function(li){new Element.ClassNames(li).remove('hover');}); 
    35            Behaviour.apply(); 
    36          } 
     37         onComplete: function(request){Behaviour.apply();} 
    3738        } 
    3839      ); 
     
    4546      shiftClassNames('app', 'sorting', 'viewing'); 
    4647      Element.update('tabslist', gBeforeReorderFragment); 
    47       Behaviour.apply() 
     48      el.attachEvent ? ieHover():''; 
     49      Behaviour.apply(); 
    4850      return false; 
    4951    } 
    5052  }, 
    5153  '#app .csshover li' : function(el){ 
    52      if (el.attachEvent){ 
    53       if (!el.hovers) el.hovers = {}; 
    54       if (el.hovers['hover']) return; 
    55       el.hovers['hover'] = true; 
    56       el.attachEvent('onmouseover', function(){el.className += ' hover';}); 
    57       el.attachEvent('onmouseout',  function(){el.className = el.className.replace((new RegExp('\\s+hover')),'');}); 
    58      } 
     54    if (Element.hasClassName(el, 'hover')) {el.className = el.className.replace('hover','');} 
    5955  }, 
    6056  '#app .visibility' : function(el){ 
     
    141137                afterFinish : function(){ 
    142138                  shiftClassNames(dl, 'expandedBlock', 'collapsedBlock'); 
    143 //                   shiftClassNames('app', 'editing', 'viewing'); 
    144139                  Element.removeClassName(li, 'editing'); 
    145140                  li.id = 'tabslist_'+title; 
     
    213208                 new Insertion.Bottom('tabslist', request.responseText); 
    214209                 Form.reset('addaction'); 
    215 //                  shiftClassNames('app', 'adding', 'viewing'); 
    216210                 Element.removeClassName('addaction', 'adding'); 
    217211                 Behaviour.apply(); 
     212                 ieHover(); 
    218213               } 
    219214             }); 
     
    252247          new Ajax.Updater({success:'roottabs'}, 'qpt_getroottabs', { 
    253248            method : 'get', 
    254             onComplete : function(){Behaviour.apply()} 
     249            onComplete : function(){ 
     250              el.attachEvent?ieHover():''; 
     251              Behaviour.apply(); 
     252            } 
    255253          }); 
    256254       } 
     
    260258}; 
    261259 
     260/* Registerin previous rules with Behaviour.js */ 
     261 
    262262Behaviour.register(myrules); 
     263 
     264/* Registering global handlers for Ajax requests through Prototype */ 
    263265 
    264266var globalHandlers = { 
     
    269271Ajax.Responders.register(globalHandlers); 
    270272 
     273/* Adding event listeners for hovering in IE & collapsing Advanced sections on loading */ 
     274 
    271275Event.observe(window, 'load', collapseAdvanced); 
    272276Event.observe(window, 'unload', function(){gBeforeReorderFragment = null; gBeforeEditData = null;}); 
     277 
     278if (window.attachEvent) {Event.observe(window, 'load', ieHover, false);} 
     279 
     280/* Utility functions */ 
     281 
     282function ieHover(){ 
     283  $A($('app').getElementsByTagName('LI')).each(function(el){ 
     284    if (el.attachEvent){ 
     285      if (!el.hovers) el.hovers = {}; 
     286      if (el.hovers['hover']) return; 
     287      el.hovers['hover'] = true; 
     288      el.attachEvent('onmouseover', function(){ 
     289        Element.hasClassName(el, 'hover') ? '':Element.addClassName(el, 'hover'); 
     290      }); 
     291      el.attachEvent('onmouseout',  function(){ 
     292        el.className = el.className.replace(/\bhover\b/g,''); 
     293      }); 
     294    } 
     295  }); 
     296}; 
    273297 
    274298function collapseAdvanced() { 
  • qPloneTabs/trunk/skins/qPloneTabs/qplonetabs.css.dtml

    r499 r500  
    6363#app.viewing ul.csshover li:hover .visibility, 
    6464#app.viewing ul.csshover li.hover .visibility, 
     65#app ul#roottabs.csshover li:hover .visibility, 
     66#app ul#roottabs.csshover li.hover .visibility, 
    6567#app.sorting                      .drag-handle     {display: inline;} 
    6668 
     
    208210/*hover***************************************************/ 
    209211 
    210 #app.viewing ul.csshover li.editing:hover, 
    211 #app.viewing ul.csshover li.editing.hover { 
     212#app.viewing ul.csshover li:hover, 
     213#app.viewing ul.csshover li.hover, 
     214#app ul#roottabs.csshover li:hover, 
     215#app ul#roottabs.csshover li.hover { 
     216  background-color: #FFFFDD; 
     217    border:  1px inset threedface; 
     218  cursor: text; 
     219
     220 
     221#app.viewing ul.csshover li.editing, 
     222#app.viewing ul.csshover li.editing { 
    212223  background-color: &dtml-backgroundColor;; 
    213224    border:  none; 
    214225    cursor: auto; 
    215 } 
    216  
    217 #app.viewing ul.csshover li:hover, 
    218 #app.viewing ul.csshover li.hover { 
    219   background-color: #FFFFDD; 
    220     border:  1px inset threedface; 
    221   cursor: text; 
    222226} 
    223227