Frage

Was ich versuche zu tun:

Wenn ein Benutzer schwebt über ein Bild, ein wenig x (Bild) in der oberen rechten Ecke angezeigt werden soll. Wenn der Benutzer klickt auf diesem kleinen x das Bild gelöscht werden soll und wenn der Benutzer eine mouseout macht die kleine x verschwinden sollte. Ich habe mehrere Dinge ausprobiert:

HTML-Struktur ist ein ul mit li und ein Bild in es

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");
};

Der Grund, dies nicht funktioniert. Wenn der Benutzer schwebt über das kleine Bild des Mouseover ausgelöst wird,

Ich habe auch versucht:

$("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.

Versuche dies auch:

$("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);
    };

Dies hat den gleichen Effekt gab, war es noch flackernde

Hat jemand eine andere Idee, wie dies zu tun (nicht brauchen spezifische Codes werden Konzepte geschätzt auch;))

?
War es hilfreich?

Lösung

$ ( 'Wähler') schweben (addExternalImage, removeExternalButton);.

Andere Tipps

Ersetzen mouseover und mouseout mit mouseenter und mouseleave.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top