我正在学习这个教程,教师的速度非常快,而且没有解释一些部分因此我正在搜索大量的文档,到目前为止它还不错。有一点我真的不明白为什么我的.on('blur',function(){..,我需要在400ms的持续时间后包含function(){}。为什么我不必包含function() {}当我使用焦点功能时?如果是这样,那么该功能的目的究竟是什么?教练只是键入了这个并且我不确定为什么。顺便说一下,我正在制作一个小型搜索引擎和讲师正在经历如何做到这一点。
$(document).ready(function(){
var searchField = $('#query');
var icon = $('#search-btn');
$(searchField).on('focus',function(){
$(this).animate({
width:'100%'
},400);
$(icon).animate({
right:'100px'
}, 400);
});
$(searchField).on('blur', function(){
if(searchField.val() == '')
{
$(searchField).animate(
{
width:'45%'
},400,function(){});
$icon.animate({
right:'45%'
},400,function(){});
}
});
})
答案 0 :(得分:1)
我假设你的意思是这里的空功能块?:
$(searchField).animate(
{
width:'45%'
},400,function(){}); // <-- in here
这是一个回调函数。由于动画是异步操作(在这种情况下应该花费400毫秒),因此它不会阻止代码等待它完成。因此,如果在完成之后有想要发生的事情,它将进入该功能块。
例如,考虑一下:
$(searchField).animate(
{
width:'45%'
},400,function(){
console.log('first');
});
console.log('second');
由于代码是异步的,{<1}}实际上会在 'second'
之前记录到控制台。这是因为当'first'
“异步”时,其余的代码继续执行。然后在该异步操作之后调用回调。
由于功能块是空的,你实际上并不需要它,可能只是完全省略它。 然而,本教程中的讲师可能会将其作为占位符放在未来的步骤中。