使用 Jquery 鼠标离开后如何更改图像并保持不变

How to image changed and remains the same after mouseleave using Jquery

这是一个下拉菜单,当鼠标悬停在上面时,它会变成图像的悬停版本,这就是现在的情况,问题或我的问题是鼠标悬停在什么时候图像的子菜单将返回到它的原始图像,这不是悬停图像版本,我希望它在悬停在它的子菜单上时保持悬停图像。

如果可以帮助您理解,请提供以下代码。

jQuery(function($){ 
    $('.main-menu > li').on('mouseover', function(){
  /*$(this).find('.sub-menus').css('display', 'block');*/       
  $(this).find('.sub-menus').show();
        /*$(this).children('a').addClass('on');*/
 });
    $('.main-menu > li').on('mouseleave', function(){
  /*$(this).find('.sub-menus').css('display', 'none');*/
  $(this).find('.sub-menus').hide();
        /*$(this).children('a').removeClass('on');*/
 });
    
    $('.main-menu > li').find('a').hover(function() {
        var target = $(this).find('img').attr('src');
        var newTarg = target.replace('.png', '_hover.png');
        $(this).find('img').attr("src", newTarg);
    }, function() {
        var target = $(this).find('img').attr('src');
        var newTarg = target.replace('_hover.png', '.png');
        $(this).find('img').attr("src", newTarg);
    });
}); 
<div class="mid-header">
    <div class="wrapper">
        <ul class="main-menu">
            <li class="item-menu01">
                <a href="#" class="item-menu-text01"><img src="../images/tit/tit_main_menu01.png"/></a>
                <div class="sub-menus">
                    <div class="wrapper">
                       <div class="left-curve">
                            <ul class="sub-menu-items right-curve">
                                <li>
                                    <a href="#" class="item-submenu01-01">
                                        <img src="../images/tit/tit_submenu_01_01.png"/>
                                    </a>
                                </li>
                                <li>
                                    <a href="#" class="item-submenu01-02">
                                        <img src="../images/tit/tit_submenu_01_02.png"/>
                                    </a>
                                </li>
                                <li>
                                    <a href="#" class="item-submenu01-03">
                                        <img src="../images/tit/tit_submenu_01_03.png"/>
                                    </a>
                                </li>
                                <li class="last-child">
                                    <a href="#" class="item-submenu01-04">
                                        <img src="../images/tit/tit_submenu_01_04.png"/>
                                    </a>
                                </li>
                            </ul>
                       </div>
                    </div>
                </div>
            </li>
            <li class="item-menu02">
                <a href="#" class="item-menu-text02"><img src="../images/tit/tit_main_menu02.png"/></a>
                <div class="sub-menus">
                    <div class="wrapper">
                        <div class="left-curve">
                            <ul class="sub-menu-items right-curve">
                                <li>
                                    <a href="#" class="item-submenu02-01">
                                        <img src="../images/tit/tit_submenu_02_01.png"/>
                                    </a>
                                </li>
                                <li>
                                    <a href="#" class="item-submenu02-02">
                                        <img src="../images/tit/tit_submenu_02_02.png"/>
                                    </a>
                                </li>
                                <li>
                                    <a href="#" class="item-submenu02-03">
                                        <img src="../images/tit/tit_submenu_02_03.png"/>
                                    </a>
                                </li>
                                <li>
                                    <a href="#" class="item-submenu02-04">
                                        <img src="../images/tit/tit_submenu_02_04.png"/>
                                    </a>
                                </li>
                                <li>
                                    <a href="#" class="item-submenu02-05">
                                        <img src="../images/tit/tit_submenu_02_05.png"/>
                                    </a>
                                </li>
                                <li>
                                    <a href="#" class="item-submenu02-06">
                                        <img src="../images/tit/tit_submenu_02_06.png"/>
                                    </a>
                                </li>
                                <li class="last-child">
                                    <a href="#" class="item-submenu02-07">
                                        <img src="../images/tit/tit_submenu_02_07.png"/>
                                    </a>
                                </li>
                            </ul>
                        </div>
                    </div>
                </div>
            </li>
        </ul>
    </div>
</div>

问题出在图像悬停上,您的目标是锚元素,因此当您移动到子菜单时,锚元素的 mouseleave 事件将触发,悬停图像将替换为默认图像。

jQuery(function ($) {
    $('.main-menu > li').hover(function () {
        /*$(this).find('.sub-menus').css('display', 'block');*/
        $(this).find('.sub-menus').show();
        /*$(this).children('a').addClass('on');*/
    }, function () {
        /*$(this).find('.sub-menus').css('display', 'none');*/
        $(this).find('.sub-menus').hide();
        /*$(this).children('a').removeClass('on');*/
    });

    $('.main-menu li').hover(function () {
        $(this).find('> a > img').attr('src', function (i, src) {
            return src.replace('.png', '_hover.png');
        })
    }, function () {
        $(this).find('> a > img').attr('src', function (i, src) {
            return src.replace('_hover.png', '.png');
        })
    });
});

尝试在您的 Jquery 中再添加一个 class:

$('.main-menu > li, .main-menu > li > li').on('mouseover', function(){

}