【问题标题】:Mouseover - mouseout - Javascript鼠标悬停 - 鼠标移出 - Javascript
【发布时间】:2010-04-30 14:43:29
【问题描述】:

我想做什么:

当用户将鼠标悬停在图像上时,右上角应该会出现一个小 x(图像)。如果用户点击这个小 x,图像应该被删除,当用户鼠标移出时,小 x 应该消失。我已经尝试了几件事:

html结构是一个ul,里面有li和一张图片

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

这不起作用的原因:当用户将鼠标悬停在小图像上时,会触发鼠标悬停。

我也试过了:

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

也试过这个:

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

同样的效果,它还在闪烁

有没有人知道如何做到这一点(不需要特定的代码,概念也很受欢迎;))?

【问题讨论】:

    标签: javascript image mouseover mouseout


    【解决方案1】:

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

    【讨论】:

    • 奇怪的是这行得通,我之前尝试过,然后它不起作用,我做了一些 css 更改。它有效。求你的帮助
    【解决方案2】:

    mouseovermouseout 替换为mouseentermouseleave

    【讨论】:

    • 这产生了与鼠标悬停和鼠标悬停相同的效果(见原始帖子以查看代码)
    猜你喜欢
    • 2011-05-26
    • 1970-01-01
    • 2017-10-14
    • 2012-05-23
    • 1970-01-01
    • 2015-08-08
    • 2011-08-04
    • 2018-09-03
    • 1970-01-01
    相关资源
    最近更新 更多