传递$(”一流 ')。每一个功能arugment无法运行功能
问题描述:
这里是一个完美的作品
$('.picture').each(function(index) {
hideYourself(index);
});
但是代码,当我尝试
$('.picture').each(hideYourself(index));
它不'运行隐藏你自己。我以为这可能是因为我没有定义index
,但是当我将它传递给一个匿名函数时,我没有定义它。整个程序的CodePen。
我知道这可能是一个愚蠢的事情要担心,但我只是混淆了为什么通过.each
一个命名的函数失败,但传递给它一个匿名函数调用我命名的函数它的工作原理。
答
用途:
$('.picture').each(hideYourself);
答
因为每取一个参数的功能参数,但你实际使用hideYourSelf(index)
调用函数调用它的函数,并返回函数的返回值作为参数传递给每一个。
可以实现它:
$('.picture').each(hideYourself);
或另一种方式来达到同样的行为是:
$('.picture').each(hideYourself());
function hideYourself(){
return function(index){
//hide here
}
}
第一种方法是简单,更好。
哇。这很简单。在11分钟内我会接受你的答案!你能解释为什么这样或者知道一个好的资源,我可以读到它为什么是这样吗? –
http://api.jquery.com/jquery.each/当您将'hideYourself'函数作为'each'方法的参数传递时,它在调用时已经将索引作为第一个参数。 –
谢谢!我现在可以最终使用我的功能,而无需使用匿名函数来调用它们! –