Pregunta

Tengo una página web que contiene un cuadro de selección. Cuando abro un cuadro de diálogo jQuery, se muestra parcialmente detrás del cuadro de selección.

¿Cómo debo abordar este problema? ¿Debo ocultar el cuadro de selección o jQuery ofrece algún tipo de solución 'shim'? (He buscado en Google pero no encontré nada)

Aquí hay un código:

<!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>
¿Fue útil?

Solución

Esto no tiene nada que ver con jQuery en particular. Este es un error conocido en IE 6: los cuadros de selección nativos de Windows siempre aparecen sobre otros elementos. Lo único que puedes hacer es ocultar los cuadros de selección cuando están cubiertos, generalmente reemplazándolos con algo que se parece al cuadro de selección.

Otros consejos

Finalmente encontré un complemento que ayuda - bgiframe Es extraño que esté disponible como un plug-in. ¿Por qué no está integrado en la interfaz de usuario principal ?!

Lo probé pero, desafortunadamente, arruina mi diálogo. El contenido del cuadro de diálogo se desplaza a la izquierda en 30-40 píxeles :-(. Siguiente problema ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top