jQuery: problème avec les contrôles fenêtrés dans IE6
-
05-07-2019 - |
Question
J'ai une page Web contenant une zone de sélection. Lorsque j'ouvre un dialogue jQuery, il est affiché en partie derrière la zone de sélection.
Comment dois-je aborder ce problème? Dois-je masquer la zone de sélection ou jQuery propose-t-il une sorte de "solution"? (J'ai googlé mais je n'ai rien trouvé)
Voici du code:
<!DOCTYPE html>
<html lang="en">
<head>
<title>testJQuery</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="GENERATOR" content="Rational Application Developer">
<link rel="stylesheet" href="theme/smooth/theme.css" type="text/css" media="screen" />
</head>
<body>
<a class="pop" href="nix">Click me</a>
<p/>
<select size="20">
<option>s jl fjlkdjfldjf l*s ldkjsdlfkjsdl fkdjlfks dfldkfjdfkjlsdkf jdksdjf sd</option>
<option>s jl fjlkdjfldjf l*s ldkjsdlfkjsdl fkdjlfks dfldkfjdfkjlsdkf jdksdjf sd</option>
<option>s jl fjlkdjfldjf l*s ldkjsdlfkjsdl fkdjlfks dfldkfjdfkjlsdkf jdksdjf sd</option>
<option>s jl fjlkdjfldjf l*s ldkjsdlfkjsdl fkdjlfks dfldkfjdfkjlsdkf jdksdjf sd</option>
<option>s jl fjlkdjfldjf l*s ldkjsdlfkjsdl fkdjlfks dfldkfjdfkjlsdkf jdksdjf sd</option>
</select>
<div id="xyz" class="flora hiddenAsset">
<div id="dialog" title="Edit Link">
<p>Enter the link details:</p>
<table width="80%" border="1">
<tr><td>URL</td><td><input id="url" style="width:100%" maxlength="200" value="{url}"/></td></tr>
<tr><td>Title</td><td><input id="title" style="width:100%" maxlength="200" value="{title}"/></td></tr>
<tr><td>Target</td><td><input id="target" size="20" maxlength="200" value="{target}"/></td></tr>
</table>
</div>
</div>
<script type="text/javascript" src="../script/firebug/firebug.js"></script>
<script type="text/javascript" src="jquery-1.2.6.js"></script>
<script type="text/javascript" src="jquery-ui-1.5.2.js"></script>
<script type="text/javascript" src="jqSOAPClient.js"></script>
<script type="text/javascript">
(function($){
$(document).ready(function(){
console.debug('ready');
$('.hiddenAsset').hide();
$('a.pop').bind('click', showDialog);
console.debug('ready - done');
});
var showDialog = function(){
console.debug('show');
$('#dialog').dialog({
modal: true,
overlay: {
backgroundColor: '#666',
opacity: '.3',
filter: 'alpha(opacity=30)'
},
width: '400px',
height: '300px',
buttons: {
Ok: function() {
$(this).dialog('close');
},
Cancel: function() {
$(this).dialog('close');
}
}
});
console.debug('show-done');
return false;
};
})(jQuery);
</script>
</body>
</html>
La solution
Cela n’a rien à voir avec jQuery en particulier. Il s'agit d'un bogue connu dans IE 6 - Les zones de sélection natives de Windows apparaissent toujours au-dessus des autres éléments. La seule chose que vous pouvez faire est de cacher les cases de sélection lorsqu'elles sont masquées - en les remplaçant généralement par quelque chose qui ressemble à la case de sélection.
Autres conseils
J'ai finalement trouvé un plug-in qui aide - bgiframe Il est étrange qu'il soit disponible en tant que un plug-in. Pourquoi n'est-il pas intégré dans l'interface utilisateur principale?!
Je l'ai essayé mais, malheureusement, ça a bousillé mon dialogue! Le contenu de la boîte de dialogue est décalé de 30 à 40 pixels vers la gauche :-(. Problème suivant ...