2012-07-10 74 views
0

我用我遇到的问题设置了这个小提琴。我需要脚本来隐藏动画完成后点击的按钮。什么是正确的方法来做到这一点?jQuery点击变量范围问题

http://jsfiddle.net/digitalaxis/utJKU/

HTML:

<div> 
    <a id='button1' href="#">Button 1</a> 
    <a id='button2' href="#">Button 2</a> 
    <a id='button3' href="#">Button 3</a> 
    <a id='button4' href="#">Button 4</a> 
    <a id='button5' href="#">Button 5</a> 
</div> 
<div id="box"> 
    Some element 
</div> 

JS:

$('a[id^="button"]').click(function() {  
    $('#box').hide('slow', function() {   
     $('a').hide('slow'); 
    }); 
}); 
+0

试试这个:http://jsfiddle.net/mHjtS/ – Andrew 2012-07-10 20:56:54

+1

我知道你已经有了你的解决方案,但你应该直接在帖子本身提供代码示例,所以我已经把它移到了这里。如果像jsFiddle这样的外部资源永远不可用,那么我们的想法就是将这个问题看作是独立的。 – 2012-07-10 21:02:15

回答

8

设置一个全局变量,其中接收$(this),并在呼叫时使用回,像这样:

$('a[id^="button"]').click(function() { 
    var $this = $(this); 
    $('#box').hide('slow', function() { 
     $this.hide('slow'); 
    }); 
});​ 
+2

比我快! +1 – ahren 2012-07-10 20:56:36

+0

完美!感谢里卡多! – 2012-07-10 20:57:37