【发布时间】:2010-07-26 01:57:16
【问题描述】:
我有这个代码:
function beforemouseout() {
if ($(this).val() == '') {
$(this).val($(this).attr('title'));
}
else {
}
setTimeout('beforemouseout()',3000);
}
$(".other").click(function() {
$(this).val('');
$(".other").mouseout(beforemouseout);
});
<input id="hour" type="text" class="other" autocomplete="off" value="hour" title="hour" />
<input id="hour" type="text" class="other" autocomplete="off" value="minutes" title="minutes" />
但是 Firebug 给了我一个错误:没有定义 beforemouseout。 为什么? 我在 jsfiddle.net 上尝试过它并没有给出错误,但结果不是我所期望的。当我单击 #hour 隐藏文本以及触发 onmouseout 等待 5 秒然后 - 时,我期望做检查
【问题讨论】:
-
您的代码真的是这样吗?因为如果是这样,我认为您不会收到该错误。 Firebug 说错误发生在哪一行代码?
-
您可以将
setTimeout('beforemouseout()',3000)重写为setTimeout(beforemouseout,3000),这样效率更高,因为不必进行运行时评估。 -
我在 jsfiddle.net 上尝试过,它没有给出错误,但结果不是我所期望的。当我点击 #hour 隐藏文本和触发 onmouseout 时,我期望等待 5 秒,然后 - 进行检查
-
@lam3r4370 - 这是你想要的吗?:jsfiddle.net/nick_craver/qKxjZ
-
@lam3r4370 - 好 :) 我在下面添加了这个作为示例,这与问题无关,但你永远不知道,它可能会帮助其他人。
标签: javascript jquery settimeout mouseout