手册上的例子,改了下。为什么focusout调用匿名函数效果的确是失去焦点时执行,但是focusin调用外部函数会直接执行?<p><input type="text" /> <span>focusout fire</span></p>
<p><input type="password" /> <span>focusout fire</span></p>
<script type="text/javascript" src="jquery.js"></script>
<script>
$("p").focusin(a());
$("p").focusout(function() {
$(this).find("span").css('display','inline').fadeIn(1000);
});
function a()
{
$("p").find("span").css('display','inline').fadeOut(1000);
}
</script>
<p><input type="password" /> <span>focusout fire</span></p>
<script type="text/javascript" src="jquery.js"></script>
<script>
$("p").focusin(a());
$("p").focusout(function() {
$(this).find("span").css('display','inline').fadeIn(1000);
});
function a()
{
$("p").find("span").css('display','inline').fadeOut(1000);
}
</script>
去掉a后面的括号,你加了括号就表示调用了,a 指向的本来就是一个函数,你加个括号表示调用该函数了...
比如说function a(assign)
{
${"#"+assign}.fadeIn(1000);
}这样不能作为事件函数?要实现相似的功能只得写成插件$.a这样的形式?
$("p").focusin(function(){ a("参数");});
错了
$("p").focusin(function(assign){ a(assign);});