所以我有this,它工作正常,一切都很好。 然后我尝试将更改改为this,这一切都出错了。 我是以错误的方式定义函数吗?对不起,我是JS& jQ(虽然我假设这只是基本的javascript而不是jQuery相关的任何内容)
编辑:另外,MAILTO:href不起作用吗?我试过了,没有收到电子邮件......无论如何,谢谢!
答案 0 :(得分:4)
你应该改变这些:
$("#name").focusout(checkName());
到
$("#name").focusout(checkName);
您希望将函数本身分配为focusout
处理程序,而是将分配任何函数返回作为处理程序。
此外,mailto:
网址方案不会发送电子邮件。它会在访问者的计算机上打开任何本地邮件客户端被定义为此方案的处理程序,并开始组合发送到URL中的地址的新邮件。
答案 1 :(得分:2)
传递函数名称,而不是执行函数的结果。
$("#name").focusout(checkName);
$("#pass").focusout(checkPass);
$("#pass2").focusout(checkPass2);
答案 2 :(得分:2)
在函数名称前面添加var
(不是完全必要但会阻止它们是全局的):
var checkName = function(){
然后将它们传递给没有()的事件绑定函数,因为这是运行函数并传递结果而不是传递实际函数本身:
$("#name").focusout(checkName);
这应解决问题。
http://jsfiddle.net/infernalbadger/Hxnv5/6/
此外,mailto:链接正常。它应该打开您的默认电子邮件客户端。