No estás registrado (Registrarse)

Vanilla 1.1.10 es un producto de Lussumo. Para más información: Documentación, Soporte.

    •  
      CommentAuthorJavi
    • CommentTimeDec 18th 2010 editado
     # 1
    Hola people,

    tengo un problemita. El caso es que estoy haciendo el típico mapa donde al seleccionar las provincias se van añadiendo a una lista desordenada para posteriormente pasarlas por un formulario. Para hacerlo un poco mas "chulo", había pensado que el usuario pueda elegir diferentes provincias en una misma query. Pues bien, resulta que todo fenomenal, excepto cuando llego a la parte de borrar "el" elemento. Voy a pegar el Code:


    $(document).ready(function() {

    $("li").click(function() {
    $(this).remove();
    });

    $("area").mouseenter(function() {
    $(document).find("#provActual").text($(this).attr("alt"));
    });

    var a = new Array
    var i = 0;

    $("area").click(function() {
    if(jQuery.inArray($(this).attr("alt"), a) == -1){
    $(document).find("#provincias").append('<li id="'+$(this).attr("alt")+'"><p>'+$(this).attr("alt")+' </p><span>X</span></li>');
    a[i] = $(this).attr("alt");
    i++;
    }
    });
    });


    Y el HTML propiamente:


    <map>
    <area shape="rect" coords="164,71,217,109" alt="Barcelona" target="32" />
    <area shape="rect" coords="130,136,218,173"alt="Girona" target="33"/>
    </map>
    <ul id="provincias">

    </ul>
    <div id="provActual"></div>


    El caso es que con fireBug, al ponerle un break en el inicio de la función click del evento li, digamos que no pasa por ahí, se la suda que haga click.

    Alguna solución porfavore? Estoy estancado

    Gracias :cata:
    •  
      CommentAuthorJavi
    • CommentTimeDec 19th 2010
     # 2
    Alguien se lo a mirao please
    • CommentAuthorJcrequena
    • CommentTimeDec 20th 2010
     # 3
    Acabo de hacer una prueba rapida con el codigo que me pasas y a mi me funciona correctamente con la 1.4.2 de jQuery....
    • CommentAuthorJcrequena
    • CommentTimeDec 20th 2010 editado
     # 4
    Perdon, no lo habia probado bien, el problema por lo que entiendo es que cuando das el evento click a los "li", estos aun no estan creados (los creas al añadirlos), asi que tendras que darselos al crearlos con "onclick="

    Cambia esta linea:

    $(document).find("#provincias").append('<li id="'+$(this).attr("alt")+'"><p>'+$(this).attr("alt")+' </p></li>');


    por esta:

    $(document).find("#provincias").append('<li id="'+$(this).attr("alt")+'" onclick="$(this).remove();"><p>'+$(this).attr("alt")+' </p></li>');

    y puedes eliminar:

    $("li").click(function() {
    $(this).remove();
    });
    •  
      CommentAuthorJavi
    • CommentTimeDec 20th 2010
     # 5
    Posted By: Jcrequena$(document).find("#provincias").append('

    '+$(this).attr("alt")+'

    ');


    Perfecto Muchas gracias Jcrquena :treva:

    Pensé que podía ser algo de que cuando cargaba las funciones de jQuery las llamaba en Ready, y que al añadirlas el DOM había sido modificado, pero me quedé "en blanco" para hayar la solución.

    gracias de nuevo!