//expandableList 扩展列表 namespace web.layout.behavior.expandableList; onAttach = function( ltOwner ){ var gotOne = false; for(i,child in ltOwner.eachChild() ){ if( child.getAttribute("default") && !gotOne) { child.modifyState( 0x20/*_HL_STATE_CURRENT*/ | 0x200/*_HL_STATE_EXPANDED*/,0,false); gotOne = true; } else{ child.modifyState(0x400/*_HL_STATE_COLLAPSED*/,0,false); } } } setCurrentItem = function( ltOwner, item ) { // get previously selected item: var prevCurrent = ltOwner.querySelector(":root > :current"); var prev = ltOwner.querySelector(":root > :expanded"); if(prevCurrent != item && prevCurrent) prevCurrent.modifyState(0,0x20/*_HL_STATE_CURRENT*/); if( prev ) { if( prev == item ) return; // already here, nothing to do. prev.modifyState(0, 0x20/*_HL_STATE_CURRENT*/ | 0x200/*_HL_STATE_EXPANDED*/); // notify all parties involved prev.postEvent(0x90/*_HL_ELEMENT_COLLAPSED*/,0, prev); // source here is old collapsed tab itself } item.modifyState( 0x20/*_HL_STATE_CURRENT*/ | 0x200/*_HL_STATE_EXPANDED*/); // set state flags item.postEvent(0x91/*_HL_ELEMENT_EXPANDED*/,0, item); // source here is new expanded tab itself } targetItem = function( ltOwner,ltTarget) { if( ltTarget == ltOwner ) return; if( !ltTarget ) return; var ltTargetParent = ltTarget.parent(); if( !ltTargetParent ) return; if( ltTarget.test("li > .caption") ) return ltTargetParent; // only if click on "caption" element of