我希望在单击事件后触发回调函数。目前我有JavaScript
$('#btnSubmit').click(function ()
{
$('#testDiv').hide('slow', onComplete('test'));
});
var onComplete = function (t)
{
$('#hiddenDiv').hide();
alert(t);
}
隐藏#testDiv
后,应该触发回调函数。但是,onComplete函数首先触发。如果我删除onComplete上的参数并只给它一个引用而不是调用它,那么该函数会在正确的时间触发,但是我无法将参数传递给它。如何在div完成隐藏之前将参数传递给onComplete并且不激活?
小提琴here
答案 0 :(得分:2)
你必须在那里包含onComplete()
:
$('#btnSubmit').click(function () {
$('#testDiv').hide('slow', function () {
onComplete('test')
});
});
在jQUery文档中:
<强>完整强>
类型:功能()
动画完成后调用的函数。
在没有包装功能的情况下添加onComplete()
时,系统会立即调用该函数,否则您只需使用onComplete
引用该函数,但除非使用.bind()
,否则无法传递您的值传递你的参数。
答案 1 :(得分:1)
使用匿名函数:
$('#btnSubmit').click(function () {
$('#testDiv').hide('slow', function () {
onComplete('test')
});
});
答案 2 :(得分:1)
您可以使用.bind()
:
$('#testDiv').hide('slow', onComplete.bind(null, 'test'));
第一个参数是this
函数中的值onComplete
。所有其他参数都是参数列表。