2

我在这个论坛上看了很多,只能找到与我的问题相反的内容,换句话说,我正在寻找如何在子 div 悬停时更改父 div 的背景,我只能找到如何更改子div,当父级悬停时。

我有 1 个带有内部提交按钮的父 div:

<div class="ugd_ele_normal_base">
  <input name="ugd_1" type="submit" class="ugd_ele_normal"/>
</div><!--end ugd_ele_normal_base-->

我想要的是当提交按钮悬停时,父 css 更改背景。

我尝试了几件事,但似乎没有任何效果。

谢谢您的帮助

4

5 回答 5

6

我会为此使用 jQuery 和 CSS:

CSS

.black {
     background-color: #000000;
}

jQuery

$(function() {
   $('.ugd_ele_normal').hover( function(){
      $(this).parent().addClass("black");
   },
   function(){
      $(this).parent().removeClass("black");
   });
});
于 2012-10-15T22:23:59.613 回答
4
$('input.ugd_ele_normal').on({
    mouseenter: function() {
        $(this).parent().css('background', 'url(/folder/image1.jpg)');
    },
    mouseleave: function() {
        $(this).parent().css('background', 'url(/folder/image2.jpg)');
    }
});

或短(ER)版本:

$('input.ugd_ele_normal').on('mouseenter mouseleave', function(e) {
     $(this).parent()
            .css('background-color', e.type=='mouseenter'?'url(/folder/image1.jpg)':'url(/folder/image2.jpg)');
});

并检索旧图像:

var bgImg = $('input.ugd_ele_normal').css('background-image'),
    hvImg = 'url(/folder/image2.jpg)';

$('input.ugd_ele_normal').on('mouseenter mouseleave', function(e) {
     $(this).parent()
            .css('background-image', e.type=='mouseenter'?hvImg:bgImg);
});

或使用类:

.hoverClass {background: url(/folder/image2.jpg);}

-

$('input.ugd_ele_normal').on('mouseenter mouseleave', function() {
   $(this).toggleClass('hoverClass');
});
于 2012-10-15T22:22:07.303 回答
2

你可以这样做。

$("#ugd_1").hover(function(){
   $(this).parent().css("background","red");
},
 function(){
      $(this).parent().css("background","none");
 });

​​现场演示:

http://jsfiddle.net/Z4QDC/2/

于 2012-10-15T22:23:51.857 回答
1

我会定义一些 jquery 来做到这一点,并使用自定义类。

//when the document is loaded, execute the following code
$(document).read(function(){

//on this elements hover, ...
$('.ugd_ele_normal').hover( function(){
    //we add the class black to the parent on hover
  $(this).parent().addClass("black");
},
function(){
   //and remove it on exit hover.
   $(this).parent().removeClass("black");
});
});

可以在这里看到实际操作:http: //jsfiddle.net/xBuyC/

于 2012-10-15T22:31:21.280 回答
0

尝试:

$('input[name="ugd_1"]').hover(function() {
    $(this).parent().css('background-color', 'COLOR');
});

希望能帮助到你。

于 2012-10-15T22:20:41.043 回答