2012-07-25 51 views
1

我有ID #contactblurb的元素在HTML中定义:jQuery的 - 创建一个函数,并传递一个文档元素作为参数传递给它

<div id="contactblurb" class="tab"> 
    email: [email protected] 
</div> 

当鼠标悬停在另一个元素(#contactNav),我想隐藏一些其他元素并显示此#contactblurb。我希望能够与其他元素做到这一点,不只是#contactblurb,所以我在jQuery的是需要建立一个功能(我认为是)的元素来隐藏:

var HideSlidesAndShowMe = function($elem) 
{ 
    $('#slides').fadeOut('slow', function() 
    { 
    $('#acorn').css({opacity : 0.05}); 

    $elem.show(); 
    }); 
} 

我通过调用它:

$("#contactNav").hover(function() { 
            HideSlidesAndShowMe($("#contactblurb")) ; 
           }, 
           function() 
           { 
            // other stuff on exit hover. 
           } 
        ); 

但它没有显示#contactblurb,但它确实做了其他的东西。

我通过参数的方式有什么问题吗?

+1

这就是你传递它是正确的。看看这里:http://jsfiddle.net/techfoobar/8FH46/ – techfoobar 2012-07-25 11:10:21

+0

这很奇怪,我只能通过在函数声明中删除'elem'前面的'$'来实现它。 – BeeBand 2012-07-25 11:11:46

+0

'$ elem'与'elem'一样是一个有效的标识符名称。它应该双向工作! – techfoobar 2012-07-25 11:15:21

回答

1

工作演示:http://jsfiddle.net/g9kBC/

这似乎是表现优良再次检查你的HTML和右括号甚至$标志也应做:)

代码

var HideSlidesAndShowMe = function($elem) { 
    //$('#slides').fadeOut('slow', function() { 
     // $('#acorn').css({ 
     // opacity: 0.05 
     //}); 
     alert($elem.attr('id')); 
     $elem.show(); 
    } 


$("#contactNav").hover(function() { 
    alert('f'); 
    HideSlidesAndShowMe($("#contactblurb")); 
}, function() { 
    // other stuff on exit hover. 
});​ 
相关问题