Pregunta

Tengo un problema al aplicar css dinámicamente a un div cargado usando la función load () . El html que se está cargando se encuentra, se inserta y puedo usar un comando de cierre. Sin embargo, el css que estoy tratando de aplicar no está siendo registrado. Todo parece funcionar bien menos el css dinámico. Creo que puedo tener algo mal o una función incorrecta aquí:

Jquery:

$(document).ready(function() {
    //Find & Open
    $(".projectThumb").click(function(){
        htmlName = $(this).find("img").attr("name");
        $("#popupContainer").load(htmlName + ".html");
        });

    //Apply CSS
    $(".projectPopup").css({"position": "absolute", "background": "#000", "top": "10%", "left": "10px"});

    //Close property
    $("a.close").live("click", function(){
        $("#popupContainer").empty();
        });
});

test.php:

<div id="content">
    <div class="projectThumb">
      <img src="/img/aeffect_button_static.gif" name="aeffect" />
      <p class="title">title</p>
    </div>
</div>
<div id="popupContainer"></div>

aeffect.html:

<div class="projectPopup" id="aeffect">
  <a class="close">Close &times;</a>
  <p class="description">Description</p>
</div>
¿Fue útil?

Solución

Está configurando las propiedades CSS en el momento equivocado. Lo que debe hacer es aplicar las propiedades CSS una vez que se complete la carga utilizando la función de devolución de llamada del método load ().

 $("#popupContainer").load(htmlName + ".html", {}, function(){
     $(".projectPopup").css({"position": "absolute", "background": "#000", "top": "10%", "left": "10px"});
 });

Otros consejos

Ponga el CSS de aplicación en la devolución de llamada para el .load ()

$(document).ready(function() {
    //Find & Open
    $(".projectThumb").click(function(){
        htmlName = $(this).find("img").attr("name");   
        $("#popupContainer").load(htmlName + ".html", null, function(){
            //Apply CSS
            $("projectPopup").css({"position": "absolute", "background": "#000", "top": "10%", "left": "10px"});

        });




    //Close property
    $("a.close").live("click", function(){
        $("#popupContainer").empty();
        });
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top