传递一个动画函数作为参数
Passing an animation function as a parameter
我试图将fadeIn/fadeOut/等函数作为参数传递给更大的函数,但它不起作用。我是这样初始化它的:
$("#buttFadeOut").click(function() {
$('#lista').fade( function () {
fadeOut(500);
}, 150);
});
它的位置是这样的:
$.fn.fade = function(passedFunction, pauseDuration){
var elem = this.children().first();
var len = elem.siblings().length;
for (var i=0;i<=len;i++) {
var fun = passedFunction();
elem.delay(pauseDuration*i).passedFunction();
}
elem = elem.next();
}
我得到的错误说,elem.delay(…). passsedfunction不是一个函数,但如果我检查它与$. isfunction (passsedfunction)它返回true。正常的功能,它的工作,但(如果我假设正确),因为我在'elem'上运行它拒绝工作。有什么解决办法吗?
elem.delay(pauseDuration*i).passedFunction();
尝试调用一个不存在的名为passedFunction()
的jQuery插件
一个解决方案可能是传递一个回调函数如下,你可能还必须移动elem = elem.next();
在for
循环
$("#buttFadeOut").click(function() {
$('#lista').fade(function(el) {
$(el).fadeOut(500);
}, 250);
});
$.fn.fade = function(passedFunction, pauseDuration) {
var elem = this.children().first();
var len = elem.siblings().length;
for (var i = 0; i <= len; i++) {
elem.delay(pauseDuration * i).promise().done(function() {
passedFunction(this);
});
elem = elem.next();
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="buttFadeOut">Test</button>
<ul id="lista">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
passedFunction()
是对匿名函数的引用。您不能从delay()
调用产生的jQuery对象中调用它。你需要单独调用它:
$.fn.fade = function(passedFunction, pauseDuration) {
var elem = this.children().first();
var len = elem.siblings().length;
for (var i = 0; i <= len; i++) {
elem.delay(pauseDuration * i);
passedFunction();
}
elem = elem.next();
}
假设两个动画都被设置为在同一个队列上操作(默认情况下是这样),那么这应该可以正常工作。
相关文章:
- 在动画结束之前调用函数
- jQuery animate()函数没有't设置动画
- 在Zepto动画函数中使用变量
- HTML5(Bootstrap)通过函数调用运行动画
- 调用函数和单击动画
- 在没有大量回调函数的情况下在列表元素上循环播放同一动画
- 如何简化jquery动画函数代码
- 将项目放在动画和 inserbefore 函数混乱之后
- Jquery动画和when函数
- 更改 jQuery 队列中动画的缓动函数
- 将对象函数传递给请求动画帧时丢失对象引用
- Jquery动画函数不工作
- 从jQuery UI滑块更改为'noUiSlider'-用于更新动画进度滑块的函数
- 通过函数(动画)每次重新迭代时重置画布笔划.怎样
- 未捕获的类型错误:使用 ig 时,未定义不是一个函数.动画表
- jQuery ScrollTop() 函数动画菜单
- JQuery,再次启动函数?动画队列
- 函数.动画百分比不起作用
- 尝试编写javascript函数动画scrollTo方法
- 如何在一个回调函数动画chrome扩展图标