Make a feature detect for the attribute selected code. Fixes #5702.
This commit is contained in:
parent
7b0b348419
commit
a00e63ea5a
|
@ -261,11 +261,13 @@ jQuery.extend({
|
||||||
// Only do all the following if this is a node (faster for style)
|
// Only do all the following if this is a node (faster for style)
|
||||||
if ( elem.nodeType === 1 ) {
|
if ( elem.nodeType === 1 ) {
|
||||||
// These attributes require special treatment
|
// These attributes require special treatment
|
||||||
var special = rspecialurl.test( name ), parent = elem.parentNode;
|
var special = rspecialurl.test( name );
|
||||||
|
|
||||||
// Safari mis-reports the default selected property of an option
|
// Safari mis-reports the default selected property of an option
|
||||||
// Accessing the parent's selectedIndex property fixes it
|
// Accessing the parent's selectedIndex property fixes it
|
||||||
if ( name === "selected" && parent ) {
|
if ( name === "selected" && !jQuery.support.optSelected ) {
|
||||||
|
var parent = elem.parentNode;
|
||||||
|
if ( parent ) {
|
||||||
parent.selectedIndex;
|
parent.selectedIndex;
|
||||||
|
|
||||||
// Make sure that it also works with optgroups, see #5701
|
// Make sure that it also works with optgroups, see #5701
|
||||||
|
@ -273,6 +275,7 @@ jQuery.extend({
|
||||||
parent.parentNode.selectedIndex;
|
parent.parentNode.selectedIndex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// If applicable, access the attribute via the DOM 0 way
|
// If applicable, access the attribute via the DOM 0 way
|
||||||
if ( name in elem && notxml && !special ) {
|
if ( name in elem && notxml && !special ) {
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
id = "script" + now();
|
id = "script" + now();
|
||||||
|
|
||||||
div.style.display = "none";
|
div.style.display = "none";
|
||||||
div.innerHTML = " <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><select><option>text</option></select><input type='checkbox'/>";
|
div.innerHTML = " <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
|
||||||
|
|
||||||
var all = div.getElementsByTagName("*"),
|
var all = div.getElementsByTagName("*"),
|
||||||
a = div.getElementsByTagName("a")[0];
|
a = div.getElementsByTagName("a")[0];
|
||||||
|
@ -52,6 +52,10 @@
|
||||||
// (WebKit defaults to "" instead)
|
// (WebKit defaults to "" instead)
|
||||||
checkOn: div.getElementsByTagName("input")[0].value === "on",
|
checkOn: div.getElementsByTagName("input")[0].value === "on",
|
||||||
|
|
||||||
|
// Make sure that a selected-by-default option has a working selected property.
|
||||||
|
// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
|
||||||
|
optSelected: document.createElement("select").appendChild( document.createElement("option") ).selected,
|
||||||
|
|
||||||
// Will be defined later
|
// Will be defined later
|
||||||
scriptEval: false,
|
scriptEval: false,
|
||||||
noCloneEvent: true,
|
noCloneEvent: true,
|
||||||
|
|
Loading…
Reference in a new issue