Author: pyaschenko
Date: 2010-05-25 11:38:03 -0400 (Tue, 25 May 2010)
New Revision: 17236
Modified:
root/core/trunk/impl/src/main/resources/META-INF/resources/jquery.position.js
root/core/trunk/impl/src/test/resources/javascript/jquery-position-qunit.js
Log:
https://jira.jboss.org/browse/RF-8676
Modified: root/core/trunk/impl/src/main/resources/META-INF/resources/jquery.position.js
===================================================================
---
root/core/trunk/impl/src/main/resources/META-INF/resources/jquery.position.js 2010-05-25
14:54:22 UTC (rev 17235)
+++
root/core/trunk/impl/src/main/resources/META-INF/resources/jquery.position.js 2010-05-25
15:38:03 UTC (rev 17236)
@@ -33,7 +33,7 @@
(function($) {
/**
- * Place DOM element relative to another element or using position parameters
+ * Place DOM element relative to another element or using position parameters.
Elements with style.display='none' also supported.
*
* @example
jQuery('#tooltip').setPosition('#myDiv',{from:'LB',
to:'AA'});
* @example
jQuery('#myClickDiv').bind("click",function(e){jQuery('#tooltip').setPosition(e);});
@@ -290,13 +290,22 @@
// TODO add qunit test
var hideElement=false;
var eVisibility;
+ var e;
if (element.css("display")=="none") {
hideElement=true;
- eVisibility = element.css("visibility");
- element.css({'visibility':'hidden','display':''});
+ e = element.get(0);
+ eVisibility = e.style.visibility;
+ e.style.visibility = 'hidden';
+ e.style.display = 'block';
}
var elementOffset = element.offset();
+
+ if (hideElement) {
+ e.style.visibility = eVisibility;
+ e.style.display = 'none';
+ }
+
pos.left += left - Math.floor(elementOffset.left);
pos.top += top - Math.floor(elementOffset.top);
@@ -306,10 +315,6 @@
if (top!=pos.top) {
element.css('top', (pos.top + 'px'));
}
-
- if (hideElement) {
- element.css({'visibility':eVisibility,'display':'none'});
- }
};
})(jQuery);
Modified: root/core/trunk/impl/src/test/resources/javascript/jquery-position-qunit.js
===================================================================
--- root/core/trunk/impl/src/test/resources/javascript/jquery-position-qunit.js 2010-05-25
14:54:22 UTC (rev 17235)
+++ root/core/trunk/impl/src/test/resources/javascript/jquery-position-qunit.js 2010-05-25
15:38:03 UTC (rev 17236)
@@ -283,7 +283,7 @@
try {
var elements = RichFaces.QUnit.appendDomElements(body,
- '<div id="testElement" style="position:absolute; width:400px;
height: 400px, top: 200px; left: 200px;">some text</div>');
+ '<div id="testElement" style="position:absolute; width:400px;
height: 400px; top: 200px; left: 200px;">some text</div>');
var e = document.getElementById("testElement");
jQuery(e).setPosition({left:200, top:200});
@@ -294,6 +294,26 @@
}
});
+ test("hidden element position", function() {
+ expect(6);
+
+ try {
+
+ var elements = RichFaces.QUnit.appendDomElements(body,
+ '<div id="testElement" style="display:none; position:absolute;
width:400px; height: 400px; top: 200px; left: 200px;">some
text</div>');
+
+ var e = document.getElementById("testElement");
+ jQuery(e).setPosition({left:300, top:300});
+ ok(e.style.display=="none", "display=='none'");
+ ok(e.style.visibility=="", "visibility==''");
+ e.style.display = '';
+ testPositioning(e,300,300);
+
+ } finally {
+ RichFaces.QUnit.removeDomElements(elements);
+ }
+ });
+
//TODO: add auto position tests // depends on some refactoring and optimization (not
done yet)
});
\ No newline at end of file