jquery颜色选择器悬停元素

时间:2011-11-09 10:44:50

标签: javascript jquery

需要Hover课程的帮助。

正如你可以看到代码然后我必须悬停元素,但不幸的是它们不会改变颜色。有任何想法如何使一切工作?

我已遵循代码:

$('#color_mix_menu_top').ColorPicker({
    color: '#0000ff',
    onShow: function (colpkr) {
        $(colpkr).fadeIn(500);
        return false;
    },
    onHide: function (colpkr) {
        $(colpkr).fadeOut(500);
        return false;
    },
    onChange: function (hsb, hex, rgb) {
        $('#menu > ul > li:hover > a, #menu > ul > li > a:hover, #menu > ul > li > div').css('backgroundColor', '#' + hex);
        $('#color_mix_menu_top').css('backgroundColor', '#' + hex);
}
});

2 个答案:

答案 0 :(得分:0)

您是否已记录或调试以验证您的jquery选择器是否正常工作?例如

console.log("" + $('#menu > ul > li:hover > a, #menu > ul > li > a:hover, #menu > ul > li > div').length)

只是为了确保你不会错过那里的东西。

答案 1 :(得分:0)

然后是一个简单的解决方案:

$('#menu > ul > li > a, #menu > ul > li > div').data('bg', '#' + hex);

然后

$('#menu > ul > li > a').hover(function(){
     $(this).css('background', $(this).data('bg'));
}, function(){
     void(0);
})

如果你想在mouseout上重置颜色:

var currBG;
$('#menu > ul > li > a').hover(function(){
    currBG = $(this).css('background');
    $(this).css('background', $(this).data('bg'));
}, function(){
    $(this).css('background', currBG);
})

您可以根据需要稍微调整一下