Pregunta

lo que estoy tratando de hacer:

Cuando un usuario se desplaza sobre una imagen, un poco de x (imagen) deben aparecer en la esquina superior derecha. Si el usuario hace clic en este pequeño x la imagen debe ser eliminado y cuando el usuario hace un mouseout los pequeños x deben desaparecer. He intentado varias cosas:

HTML es una estructura con ul li y una imagen en ella

Javascript:

//On all the li's in the ul

$("li",$flickrKeyUlPreview).mouseover(addExternalImage);

var addExternalImage = function(){

        //Get the offset of the image the user is hovering over
        var offset = $(this).offset();

        //Move the little x button to the image
        $flickrDetailButton.offset(offset);

        //Set it visible
        $flickrDetailButton.css("visibility","visible");

        //Bind the event for the mouseout
        $flickrDetailButton.mouseout(removeExternalButton);
};

var removeExternalButton = function(){

        //Hide the little x
        $flickrDetailButton.css("visibility","hidden");
};

La razón de que esto no funciona:. Cuando los elementos emergentes de usuario más de la pequeña imagen del ratón encima se activa

También he intentado:

$("li",$flickrKeyUlPreview).mouseover(addExternalImage);

     var addExternalImage = function(){
        $(this).unbind('mouseover');
        var emptyObject = {};
        $(this).append($.TemplateRenderer($flickrDetailButton,emptyObject));
        $flickrDetailButton = $('#flickr_detail_button',rootel);
        $(this).mouseout(removeExternalButton);
    };


   var removeExternalButton = function(){
        $(this).unbind('mouseout');
        $flickrDetailButton = $('#flickr_detail_button',rootel);
        if ($($flickrDetailButton, $(this))) {
            $($flickrDetailButton, $(this)).remove();
        }
        $(this).mouseover(addDelBtn);
    };

This doesn't work that well, the little x starts flickering.

probado este también:

$("li",$flickrKeyUlPreview).mouseenter(addExternalImage);

    var removeExternalButton = function(){
        $flickrDetailButton = $('#flickr_detail_button', rootel);
        if ($($flickrDetailButton, $(this))) {
            $($flickrDetailButton, $(this)).remove();
        }
        $(this).mouseenter(addExternalImage);
    };


    var addExternalImage = function(){
        var emptyObject = {};
        $(this).append($.TemplateRenderer($flickrDetailButtonTemplate,emptyObject));
        $flickrDetailButton = $('#flickr_detail_button',rootel);
        $(this).mouseout(removeExternalButton);
        $flickrDetailButton.mouseleave(removeExternalButton);
    };

Esto dio el mismo efecto, todavía estaba parpadeando

¿Alguien tiene otra idea de cómo hacer esto (no necesitar códigos específicos, los conceptos son apreciados también;))

?
¿Fue útil?

Solución

$ ( 'selector') activable (addExternalImage, removeExternalButton);.

Otros consejos

Reemplazar mouseover y mouseout con mouseenter y mouseleave.

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