亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dommenu.js

?? 免費的java企業(yè)級論壇可執(zhí)行程序
?? JS
?? 第 1 頁 / 共 3 頁
字號:
		menuTable.cellSpacing = 0;
	}

	menuTable.style.border = 0;
	menuTable.style.borderCollapse = 'collapse';
	var menuTableBody = menuTable.appendChild(targetDoc.createElement('tbody'));

	var numSiblings = in_parentElement.data.get('numChildren');
	for (var index = 1; index <= numSiblings; index++) {
		var dataIndex = in_parentElement.data.get('level') == 1 && settings.get('verticalExpand') == 'north' && settings.get('axis') == 'horizontal' ? numSiblings + 1 - index : index;
		var menuTableCell = menuTableBody.appendChild(targetDoc.createElement('tr')).appendChild(targetDoc.createElement('td'));
		menuTableCell.style.padding = 0;
		menuTableCell.id = in_parentElement.id + '-' + dataIndex;

		// add element to list of parent children
		in_parentElement.data.get('childElements').set(menuTableCell.id, menuTableCell);

		// assign the settings to nth level element
		menuTableCell.data = in_parentElement.data.get(dataIndex);
		menuTableCell.data.merge(new Hash(
			'basename', in_parentElement.data.get('basename'),
			'parentElement', in_parentElement,
			'numChildren', menuTableCell.data.numericLength,
			'childElements', new Hash(),
			'offsets', new Hash(),
			'level', in_parentElement.data.get('level') + 1,
			'index', index
		));
		
		// assign the styles
		menuTableCell.style.cursor = 'default';
		
		var element = menuTableCell.appendChild(targetDoc.createElement('div')); 
		var outerElement = element;
		outerElement.className = settings.get('subMenuElementClass'); 

		if (menuTableCell.data.get('numChildren')) {
			element = outerElement.appendChild(targetDoc.createElement('div'));
			element.style.backgroundImage = 'url(' + settings.get('expandMenuArrowUrl') + ')';
			element.style.backgroundRepeat = 'no-repeat';
			if (settings.get('horizontalExpand') == 'east') {
				element.style.backgroundPosition = 'right center';
				element.style.paddingRight = '12px';
			}
			else {
				element.style.backgroundPosition = 'left center';
				element.style.paddingLeft = '12px';
			}
		}

		// fill in the menu item contents
		if (domLib_isMacIE) {
			// we don't support images in sub-menu elements in MacIE because in order for
			// the menu to work consistently the data has to be added with createTextNode()
			element.appendChild(targetDoc.createTextNode(menuTableCell.data.get('contents')));
			// MacIE has to have a newline and it has to be added with createTextNode!
			menuTableCell.appendChild(targetDoc.createTextNode("\n"));
		}
		else {
			element.innerHTML = menuTableCell.data.get('contents');
		}

		// attach the events
		menuTableCell.onmouseover = domMenu_openSubMenuOnmouseoverHandler;
		menuTableCell.onmouseout = domMenu_closeMenuHandler;

		if (settings.get('openClickSubMenuDelay') >= 0 && menuTableCell.data.get('numChildren')) {
			menuTableCell.onmousedown = domMenu_openSubMenuOnclickHandler;
			menuTableCell.onmouseup = domLib_cancelBubble;
			if (domLib_isIE) {
				menuTableCell.ondblclick = domMenu_openSubMenuOnclickHandler;
			}
		}
		else if (menuTableCell.data.get('uri')) {
			menuTableCell.style.cursor = domMenu_pointerStyle;
			menuTableCell.onclick = domMenu_resolveLinkHandler;
		}
		else if (!menuTableCell.data.get('numChildren')) {
			outerElement.className += ' ' + settings.get('subMenuElementHeadingClass');
		}

		// prevent highlighting of text
		if (domLib_isIE) {
			menuTableCell.onselectstart = makeFalse;
		}

		menuTableCell.oncontextmenu = makeFalse;
	}

	menu = targetDoc.body.appendChild(menu);
	domMenu_toggleSubMenu(in_parentElement, 'visible');
}

// }}}
// {{{ domMenu_changeActivePath()

/**
 * Close the old active path up to the new active element
 * and return the value of the new active element (or the same if unchanged)
 * NOTE: If the new active element is not set (false), the top level is assumed
 *
 * @return mixed new active element or false if not set
 */
function domMenu_changeActivePath(in_newActiveElement, in_oldActiveElement, in_closeDelay)
{
	// protect against crap
	if (!in_oldActiveElement && !in_newActiveElement) {
		return false;
	}

	// cancel open timeouts since we know we are opening something different now
	for (var i in domMenu_timeouts['open'].elementData) {
		domLib_clearTimeout(domMenu_timeouts['open'].get(i));
	}

	// grab some info about this menu system...will this ever be null?
	var basename = in_oldActiveElement ? in_oldActiveElement.data.get('basename') : in_newActiveElement.data.get('basename');
	var settings = domMenu_settings.get(basename);

	// build the old active path and unhighlight previously selected element, if appropriate
	var oldActivePath = new Hash();
	if (in_oldActiveElement) {
		var tmp_newActiveLevel = in_newActiveElement ? in_newActiveElement.data.get('level') : -1;
		var tmp_oldActivePathElement = in_oldActiveElement;
		do {
			// NOTE: using set() causes IE to lag and leaves behind highlighted artifacts!
			oldActivePath.elementData[tmp_oldActivePathElement.id] = tmp_oldActivePathElement; 
			// unhighlight if sibling of new element, even if it has open submenus
			if (tmp_newActiveLevel >= 0 && tmp_oldActivePathElement.data.get('level') == tmp_newActiveLevel) {
				domMenu_toggleHighlight(tmp_oldActivePathElement, false);
			}
		} while ((tmp_oldActivePathElement = tmp_oldActivePathElement.data.get('parentElement')) && tmp_oldActivePathElement.id != basename);

		// unhighlight element immediately if no submenu (or submenu is closed)
		if (!in_oldActiveElement.data.get('subMenu') || in_oldActiveElement.data.get('subMenu').style.visibility == 'hidden') {
			domMenu_toggleHighlight(in_oldActiveElement, false);
		}
	}

	// build the new path and...(explain me!)
	var newActivePath = new Hash();
	var intersectPoint;
	if (in_newActiveElement) {
		var actualActiveElement = in_newActiveElement;
		window.status = in_newActiveElement.data.get('statusText') + ' ';

		// in the event we have no old active element, just highlight new one and return
		// without setting the new active element (handled later)
		if (!in_oldActiveElement) {
			domLib_clearTimeout(domMenu_timeouts['close'].get(in_newActiveElement.id));
			domMenu_toggleHighlight(in_newActiveElement, true);
			return false;
		}
		// if the new element is in the path of the old element, then pretend event is
		// on the old active element
		else if (oldActivePath.has(in_newActiveElement.id)) {
			in_newActiveElement = in_oldActiveElement;
		}

		var tmp_newActivePathElement = in_newActiveElement;
		do {
			// if we have met up with the old active path, then record merge point
			if (!intersectPoint && oldActivePath.has(tmp_newActivePathElement.id)) {
				intersectPoint = tmp_newActivePathElement;
			}

			newActivePath.set(tmp_newActivePathElement.id, tmp_newActivePathElement); 
			domLib_clearTimeout(domMenu_timeouts['close'].get(tmp_newActivePathElement.id));
			// FIXME: this is ugly!
			if (tmp_newActivePathElement != in_oldActiveElement || actualActiveElement == in_oldActiveElement) {
				domMenu_toggleHighlight(tmp_newActivePathElement, true);
			}
		} while ((tmp_newActivePathElement = tmp_newActivePathElement.data.get('parentElement')) && tmp_newActivePathElement.id != basename);

		// if we move to the child of the old active element
		if (in_newActiveElement.data.get('parentElement') == in_oldActiveElement) {
			return in_newActiveElement;
		}
		// if the new active element is in the old active path
		else if (in_newActiveElement == in_oldActiveElement) {
			return in_newActiveElement;
		}

		// find the sibling element
		var intersectSibling;
		if (intersectPoint && oldActivePath.length > 0) {
			for (var i in oldActivePath.elementData) {
				if (oldActivePath.get(i).data.get('parentElement') == intersectPoint) {
					intersectSibling = oldActivePath.get(i);
					break;
				}
			}
		}

		var isRootLevel = in_newActiveElement.data.get('level') == 1 ? true : false;
		var closeDelay = isRootLevel ? settings.get('closeMouseoutMenuDelay') : settings.get('closeMouseoutSubMenuDelay');
	}
	else {
		var isRootLevel = false;
		var closeDelay = settings.get('closeMouseoutMenuDelay');
		window.status = window.defaultStatus;
	}

	// override the close delay with that passed in
	if (typeof(in_closeDelay) != 'undefined') {
		closeDelay = in_closeDelay;
	}

	// if there is an intersect sibling, then we need to work from there up to 
	// preserve the active path
	if (intersectSibling) {
		// only if this is not the root level to we allow the scheduled close
		// events to persist...otherwise we close immediately
		if (!isRootLevel) {
			// toggle the sibling highlight (only one sibling highlighted at a time)
			domMenu_toggleHighlight(intersectSibling, false);
		}
		// we are moving to another top level menu
		// FIXME: clean this up
		else {
			// add lingering menus outside of old active path to active path
			for (var i in domMenu_timeouts['close'].elementData) {
				if (!oldActivePath.has(i)) {
					var tmp_element = document.getElementById(i);
					if (tmp_element.data.get('basename') == basename) {
						oldActivePath.set(i, tmp_element);
					}
				}
			}
		}
	}

	// schedule the old active path to be closed
	for (var i in oldActivePath.elementData) {
		if (newActivePath.has(i)) {
			continue;
		}

		// make sure we don't double schedule here
		domLib_clearTimeout(domMenu_timeouts['close'].get(i));

		if (isRootLevel) {
			domMenu_toggleHighlight(oldActivePath.get(i), false); 
			domMenu_toggleSubMenu(oldActivePath.get(i), 'hidden');
		}
		else {
			domMenu_timeouts['close'].set(i, domLib_setTimeout(domMenu_closeMenuCallback, closeDelay, [oldActivePath.get(i), basename]));
		}
	}
	
	return in_newActiveElement;
}

// }}}
// {{{ domMenu_deactivate()

function domMenu_deactivate(in_basename, in_delay)
{
	if (!in_delay) {
		in_delay = 0;
	}

	domMenu_changeActivePath(false, domMenu_activeElement.get(in_basename), in_delay);
}

// }}}
// {{{ domMenu_openEvent()

/**
 * Handle the mouse event to open a menu
 *
 * When an event is received to open the menu, this function is
 * called, handles reinitialization of the menu state and sets
 * a timeout interval for opening the submenu (if one exists)
 */
function domMenu_openEvent(in_this, in_event, in_delayType)
{
	if (domLib_isGecko) {
		window.getSelection().removeAllRanges();
	}

	// setup the cross-browser event object and target
	var eventObj = domLib_isIE ? event : in_event;

	// ensure the event is from the correct frame
	if (domLib_isIE && in_this.data.get('level') > 1) {
		var targetFrame = domMenu_settings.get(in_this.data.get('basename')).get('subMenuTargetFrame');
		if (targetFrame) {
			eventObj = targetFrame.event;
		}
	}

	var currentTarget = domLib_isIE ? in_this : eventObj.currentTarget;
	var basename = currentTarget.data.get('basename');
	var settings = domMenu_settings.get(basename);

	// if we are moving amoungst DOM children of the same element, just ignore event
	if (eventObj.type != 'mousedown' && domMenu_getElement(eventObj[domMenu_eventFrom], basename) == currentTarget) {
		return;
	}

	// if we click on an open menu, close it
	if (eventObj.type == 'mousedown' && domMenu_activeElement.get(basename)) {
		domMenu_changeActivePath(false, domMenu_activeElement.get(basename), currentTarget.data.get('level') == 1 ? settings.get('closeClickMenuDelay') : settings.get('closeClickSubMenuDelay'));
		return;
	}

	// if this element has children, popup the child menu
	if (currentTarget.data.get('numChildren')) {
		// the top level menus have no delay when moving between them
		// so activate submenu immediately
		if (currentTarget.data.get('level') == 1 && domMenu_activeElement.get(basename)) {
			// ** I place changeActivePath() call here so the hiding of selects does not flicker **
			// THOUGHT: instead I could tell changeActivePath to clear select ownership but not
			// toggle visibility....hmmm....
			domMenu_activateSubMenu(currentTarget);
			// clear the active path and initialize the new one
			domMenu_activeElement.set(basename, domMenu_changeActivePath(currentTarget, domMenu_activeElement.get(basename)));
		}
		else {
			// clear the active path and initialize the new one
			domMenu_activeElement.set(basename, domMenu_changeActivePath(currentTarget, domMenu_activeElement.get(basename)));
			domMenu_timeouts['open'].set(currentTarget.id, domLib_setTimeout(domMenu_openMenuCallback, settings.get(in_delayType), [currentTarget, basename]));
		}
	}
	else {
		// clear the active path and initialize the new one
		domMenu_activeElement.set(basename, domMenu_changeActivePath(currentTarget, domMenu_activeElement.get(basename)));
	}
}

// }}}
// {{{ domMenu_closeEvent()

/**
 * Handle the mouse event to close a menu
 *
 * When an mouseout event is received to close the menu, this function is
 * called, sets a timeout interval for closing the menu.
 */
function domMenu_closeEvent(in_this, in_event)
{
	// setup the cross-browser event object and target
	var eventObj = domLib_isIE ? event : in_event;

	// ensure the event is from the correct frame
	if (domLib_isIE && in_this.data.get('level') > 1) {
		var targetFrame = domMenu_settings.get(in_this.data.get('basename')).get('subMenuTargetFrame');
		if (targetFrame) {
			eventObj = targetFrame.event;
		}
	}

	var currentTarget = domLib_isIE ? in_this : eventObj.currentTarget;
	var basename = currentTarget.data.get('basename');
	var relatedTarget = domMenu_getElement(eventObj[domMenu_eventTo], basename);

	// if the related target is not a menu element then we left the menu system
	// at this point (or cannot discern where we are in the menu)
	if (domMenu_activeElement.get(basename)) {
		if (!relatedTarget) {
			domMenu_changeActivePath(false, domMenu_activeElement.get(basename));
		}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜视频网站| 日韩女优制服丝袜电影| 精品影院一区二区久久久| 中文字幕亚洲不卡| 欧美大片日本大片免费观看| 在线精品观看国产| 岛国精品一区二区| 精品在线一区二区| 五月天精品一区二区三区| 成人欧美一区二区三区小说| 日韩欧美国产wwwww| 欧美日韩中文字幕一区二区| 99国产精品国产精品久久| 精品一区二区三区免费| 日产精品久久久久久久性色| 亚洲人成在线观看一区二区| 久久精品一区二区三区不卡牛牛| 欧美精品日韩综合在线| 一本一道久久a久久精品综合蜜臀| 黑人巨大精品欧美黑白配亚洲| 亚洲成人免费观看| 一区二区三区在线视频免费观看 | 国产91高潮流白浆在线麻豆| 日产国产欧美视频一区精品| 亚洲动漫第一页| 亚洲精品免费播放| 亚洲伦在线观看| 国产精品嫩草99a| 国产三级一区二区| 精品日产卡一卡二卡麻豆| 91精品国产综合久久福利| 91极品美女在线| 色婷婷av久久久久久久| 99久久久精品| 成人自拍视频在线观看| 国产成人精品免费网站| 韩国一区二区在线观看| 国产麻豆视频精品| 国产在线一区观看| 国产盗摄女厕一区二区三区 | 美国毛片一区二区三区| 日韩影院精彩在线| 全部av―极品视觉盛宴亚洲| 日本欧美久久久久免费播放网| 亚洲国产综合在线| 日韩中文字幕91| 美女视频一区在线观看| 加勒比av一区二区| 韩国精品在线观看| 成人亚洲一区二区一| 99精品国产热久久91蜜凸| 色哟哟国产精品| 欧美日韩欧美一区二区| 欧美高清精品3d| 亚洲精品在线一区二区| 欧美国产激情一区二区三区蜜月| 欧美极品少妇xxxxⅹ高跟鞋| 一区二区中文视频| 亚洲1区2区3区4区| 久久精品免费看| 成人综合婷婷国产精品久久 | 精品国产免费人成在线观看| 久久久九九九九| 亚洲免费观看高清在线观看| 亚洲成人自拍偷拍| 黄色资源网久久资源365| 国产.欧美.日韩| 欧美体内she精高潮| 日韩欧美在线123| 亚洲国产高清不卡| 亚洲国产日韩a在线播放| 久久国产乱子精品免费女| 成人手机在线视频| 欧美无乱码久久久免费午夜一区| 日韩欧美在线123| 国产精品久久免费看| 亚洲成人精品在线观看| 国产精品自拍网站| 欧美特级限制片免费在线观看| 日韩精品一区二区三区在线| 中文av字幕一区| 日韩综合在线视频| 丁香一区二区三区| 欧美日韩国产色站一区二区三区| 久久综合久久综合久久| 一区二区三区精品在线| 国产乱子轮精品视频| 欧美性大战xxxxx久久久| 久久综合色鬼综合色| 亚洲第一主播视频| 成人午夜电影小说| 日韩一级精品视频在线观看| 亚洲黄色性网站| 国产精品亚洲视频| 欧美日韩一卡二卡三卡 | 美日韩黄色大片| 91免费在线看| 久久综合给合久久狠狠狠97色69| 亚洲国产视频网站| 成人一区二区三区视频在线观看| 欧美一区二区日韩| 亚洲在线中文字幕| 成人免费va视频| 欧美刺激午夜性久久久久久久| 一区二区三区在线观看欧美| 国产精品一卡二| 日韩欧美亚洲一区二区| 亚洲福利国产精品| 91麻豆国产在线观看| 久久久精品黄色| 日本一不卡视频| 欧美三级在线视频| √…a在线天堂一区| 国产成a人亚洲精| 欧美精品一区二区三区一线天视频 | 欧美午夜精品一区| 国产精品传媒视频| 国产精品99久久久久久有的能看 | 韩日av一区二区| 日韩精品专区在线影院观看| 视频一区欧美精品| 欧美性极品少妇| 亚洲小少妇裸体bbw| 91论坛在线播放| 亚洲欧洲综合另类在线| 成人网男人的天堂| 国产精品久久久久久久久免费樱桃 | 5566中文字幕一区二区电影| 一区二区三区四区蜜桃| 91丝袜高跟美女视频| 中文字幕人成不卡一区| av不卡免费电影| 中文字幕一区在线| 成人av先锋影音| 综合亚洲深深色噜噜狠狠网站| av一区二区三区在线| 久久精品一区蜜桃臀影院| 福利电影一区二区| 中文字幕欧美区| www.亚洲精品| 亚洲久草在线视频| 欧美色成人综合| 日韩av在线播放中文字幕| 日韩欧美综合一区| 国产一区二区视频在线播放| 久久久久88色偷偷免费| 波多野结衣精品在线| 中文字幕日本乱码精品影院| 91久久精品一区二区| 视频精品一区二区| 日韩欧美视频一区| 夫妻av一区二区| 一区二区三区欧美日| 欧美日韩免费不卡视频一区二区三区| 亚欧色一区w666天堂| 日韩片之四级片| 国产成人av一区二区三区在线| 中文字幕一区二区在线播放| 色吧成人激情小说| 日韩精品成人一区二区在线| 日韩欧美一区在线观看| 国产成人福利片| 亚洲精品中文字幕在线观看| 在线成人免费视频| 国产一区视频导航| 亚洲免费在线观看| 制服.丝袜.亚洲.中文.综合| 韩国午夜理伦三级不卡影院| 日韩一区有码在线| 91精品视频网| 成人午夜免费电影| 亚洲成人av电影| 久久久99精品免费观看不卡| 一本到一区二区三区| 日本一区中文字幕| 国产精品电影院| 日韩午夜在线观看视频| 成人丝袜视频网| 日本大胆欧美人术艺术动态| 欧美国产日韩在线观看| 欧美精品三级日韩久久| 国产91高潮流白浆在线麻豆| 午夜欧美电影在线观看| 欧美国产禁国产网站cc| 5858s免费视频成人| aaa欧美大片| 韩国女主播成人在线观看| 亚洲综合在线视频| 精品无人码麻豆乱码1区2区 | 中文乱码免费一区二区| 6080yy午夜一二三区久久| eeuss国产一区二区三区| 亚洲国产欧美日韩另类综合| 国产欧美日韩卡一| 欧美一级二级在线观看| 色综合中文字幕| 成人在线视频一区二区| 另类成人小视频在线| 亚洲成在人线在线播放| 日韩伦理电影网|