jQuery:我的hover()中没有定义变量

时间:2013-01-31 01:19:55

标签: jquery variables hover undefined

我有这段代码:

$('#services_list > div').hover(function() {

    var serviceHoveredOn = '#' + $(this).attr('id');
    $(serviceHoveredOn + ' .service_expand').stop().animate({'width': '169px'}, 150);

},

function() {

    $(serviceHoveredOn + ' .service_expand').stop().animate({'width': '159px'}, 150);

});

但是,当我悬停在serviceHoveredOn之外时,div未定义。我搜索并发现了这个: jquery: passing variables in hover() function? 但我不知道如何使用toggle()来解决我的问题。谢谢。

1 个答案:

答案 0 :(得分:1)

您无法访问在另一个函数中声明的变量。


在您的情况下,您甚至不需要它。只需使用this,并将其作为上下文传递:

$('#services_list > div').hover(function() {
    $('.service_expand', this).stop().animate({'width': '169px'}, 150);
},
function() {
    $('.service_expand', this).stop().animate({'width': '159px'}, 150);
});