2010-12-09 153 views
3

我的问题是两个功能被传递给切换为什么..进出侧的另一功能是存在的,它也混淆PLZ告诉我切换功能

$('#login a').toggle(function() { 
    $(this) 
     .addClass('active') 
     .next('form') 
     .animate({'height':'show'}, { 
     duration:'slow', 
     easing: 'easeOutBounce' 
     }); 
    }, function() { 
    $(this) 
     .removeClass('active') 
     .next('form') 
     .slideUp(); 
    }); 
    $('#login form :submit').click(function() { 
    $(this) 
     .parent() 
     .prev('a') 
     .click(); 
    }); 

回答

1

toggle()方法有两个(或更多)函数作为参数并在每次单击该元素时交替调用其中之一。

函数是first class citizens在Javascript:你可以操纵他们像其他任何对象,包括它们传递给其它功能:

function foo(otherfunction) 
{ 
    otherfunction(); 
} 

function bar() 
{ 
    window.alert("bar() was called."); 
} 

foo(bar); // Ultimately calls `bar()`. 
+0

超级兄弟非常感谢你 – Mihir 2010-12-09 11:31:18

0

根据JQuery API documentation功能将在交替的点击称为:

  • 第一次点击 - 第一次功能,
  • 第二次点击 - 第二次功能,
  • 第三次点击 - 第一功能,
  • 第四点击 - 第二功能...

至于提交按钮的处理程序,它模拟点击锚包含该按钮,位于前(a)元素是同级元素容器元素。像这样:

<a href="#">click will be simulated for this link</a> 
<div> 
    <input type="submit"/> 
</div>