JQuery学习笔记: preventDefault

最近在学习一些WEB前端的东西,例如JS/CSS神马的,我会把学习后的一些要点记录下来,对于JS/CSS的兼容问题,我只关注现代浏览器所支持的,对于IE6/7/8的问题会直接忽视,毕竟当下的浏览器基本上都支持HTML5了,对于那些古董丑陋的浏览器就让他成为历史吧。另外说一下当下我看的是 Callum Macrae 写的《Learming from jQuery》 。

关于preventDefault方法

单从字面含义上可以看,是组织默认行为的发生,我们可以用一个例子加以说明:
将一个id=foo的A链接,点击后,将文字颜色改为红色:

$('a#foo').click(function (e) { 
  $(this).css('color', 'red');
  e.preventDefault(); 
});

preventDefault() 会阻止控件的默认响应行为,例如阻止链接的跳转。这样就不会和我们定义的事件响应处理产生冲突。这里我们用 return false 替换 preventDefault 也可以达同样的目的,但这样会阻止事件的冒泡传播(他的父级控件将无法收到该事件),不建议这样使用。

记得在很久之前我写JS的Submit方法的时候,一般会在Click事件上绑定一个函数,做一些表单的检查,如果出现了不符合要求的输入,会直接提示并return false, 防止Submit事件的执行,现在看来确实不够专业

同样,在事件处理上,我之前为了方便,也经常会写出如下的代码,显然这样的写法在当下也是不合理和让人难以维护的:

<a href="#" onclick="this.style.color = 'red'">
  Click to turn red!
</a>