Author: gseitz
Date: Mon Mar 31 13:30:31 2008
New Revision: 643133
URL: http://svn.apache.org/viewvc?rev=643133&view=rev
Log:
WICKET-1329: detect zIndex of offsetParent
Modified:
wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
Modified:
wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
URL:
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js?rev=643133&r1=643132&r2=643133&view=diff
==============================================================================
---
wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
(original)
+++
wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
Mon Mar 31 13:30:31 2008
@@ -164,15 +164,16 @@
}
function getAutocompleteMenu() {
- var choiceDiv = document.getElementById(getMenuId());
- if (choiceDiv == null) {
- choiceDiv = document.createElement("div");
+ var choiceDiv=document.getElementById(getMenuId());
+ if (choiceDiv==null) {
+ choiceDiv=document.createElement("div");
document.body.appendChild(choiceDiv);
- choiceDiv.id = getMenuId();
- choiceDiv.className = "wicket-aa";
- choiceDiv.style.display = "none";
- choiceDiv.style.position = "absolute";
- choiceDiv.style.zIndex = "30000";
+ choiceDiv.id=getMenuId();
+ choiceDiv.className="wicket-aa";
+ choiceDiv.style.display="none";
+ choiceDiv.style.position="absolute";
+ var index=getOffsetParentZIndex(elementId);
+ choiceDiv.style.zIndex=index=="auto"?index:Number(index)+1;
// WICKET-1350/WICKET-1351
choiceDiv.onmouseout=function() {mouseactive=0;};
@@ -353,20 +354,39 @@
}
}
+ // From
http://www.robertnyman.com/2006/04/24/get-the-rendered-style-of-an-element/
+ function getStyle(obj,cssRule) {
+ var cssRuleAlt = cssRule.replace(/\-(\w)/g,function(strMatch,p1){return
p1.toUpperCase();});
+ var value=obj.style[cssRuleAlt];
+ if (!value) {
+ if (document.defaultView &&
document.defaultView.getComputedStyle) {
+ value =
document.defaultView.getComputedStyle(obj,"").getPropertyValue(cssRule);
+ }
+ else if (obj.currentStyle)
+ {
+ value=obj.currentStyle[cssRuleAlt];
+ }
+ }
+ return value;
+ }
function isVisible(obj) {
- var value = obj.style.visibility;
- if (!value) {
- if (document.defaultView &&
typeof(document.defaultView.getComputedStyle)=="function") {
-
value=document.defaultView.getComputedStyle(obj,"").getPropertyValue("visibility");
- } else if (obj.currentStyle) {
- value = obj.currentStyle.visibility;
- } else {
- value='';
- }
- }
- return value;
+ return getStyle(obj,"visibility");
}
+
+ function getOffsetParentZIndex(obj) {
+ obj=typeof obj=="string"?Wicket.$(obj):obj;
+ obj=obj.offsetParent;
+ var index="auto";
+ do {
+ var pos=getStyle(obj,"position");
+ if(pos=="relative"||pos=="absolute"||pos=="fixed") {
+ index=getStyle(obj,"z-index");
+ }
+ obj=obj.offsetParent;
+ } while (obj && index == "auto");
+ return index;
+ }
function hideShowCovered(){
if (!/msie/i.test(navigator.userAgent) &&
!/opera/i.test(navigator.userAgent)) {