Fixed #2037 where Opera would mis-state the value of 'display' after an innerHTML was done in some cases.

This commit is contained in:
David Serduke 2007-12-17 01:58:05 +00:00
parent adc4c48201
commit 6496e4d9c4
3 changed files with 15 additions and 2 deletions

View file

@ -816,6 +816,12 @@ jQuery.extend({
"1" : "1" :
ret; ret;
} }
// Opera sometimes will give the wrong display answer, this fixes it, see #2037
if ( jQuery.browser.opera && name == "display" ) {
var save = elem.style.display;
elem.style.display = "block";
elem.style.display = save;
}
// Make sure we're using the right name for getting the float value // Make sure we're using the right name for getting the float value
if ( name.match( /float/i ) ) if ( name.match( /float/i ) )

View file

@ -172,6 +172,9 @@ Z</textarea>
</div> </div>
</form> </form>
<div id="nonnodes"><span>hi</span> there <!-- mon ami --></div> <div id="nonnodes"><span>hi</span> there <!-- mon ami --></div>
<div id="t2037">
<div><div class="hidden">hidden</div></div>
</div>
</div> </div>
</div> </div>
</dl> </dl>

View file

@ -420,7 +420,7 @@ test("css(String|Hash)", function() {
}); });
test("css(String, Object)", function() { test("css(String, Object)", function() {
expect(20); expect(21);
ok( $('#foo').is(':visible'), 'Modifying CSS display: Assert element is visible'); ok( $('#foo').is(':visible'), 'Modifying CSS display: Assert element is visible');
$('#foo').css('display', 'none'); $('#foo').css('display', 'none');
ok( !$('#foo').is(':visible'), 'Modified CSS display: Assert element is hidden'); ok( !$('#foo').is(':visible'), 'Modified CSS display: Assert element is hidden');
@ -454,6 +454,10 @@ test("css(String, Object)", function() {
var j = $("#nonnodes").contents(); var j = $("#nonnodes").contents();
j.css("padding-left", "1px"); j.css("padding-left", "1px");
equals( j.css("padding-left"), "1px", "Check node,textnode,comment css works" ); equals( j.css("padding-left"), "1px", "Check node,textnode,comment css works" );
// opera sometimes doesn't update 'display' correctly, see #2037
$("#t2037")[0].innerHTML = $("#t2037")[0].innerHTML
equals( $("#t2037 .hidden").css("display"), "none", "Make sure browser thinks it is hidden" );
}); });
test("jQuery.css(elem, 'height') doesn't clear radio buttons (bug #1095)", function () { test("jQuery.css(elem, 'height') doesn't clear radio buttons (bug #1095)", function () {