问题1:function doSubmit(e),里边为什么加个 e,表达什么含义
问题2:if (e.stopPropagation) {e.stopPropagation();} e.stopPropagation出现2次,什么意思
问题3:我百度下,下边2个都是阻止事件的扩散,为什么这么做?
if (e.stopPropagation) {e.stopPropagation();}
e.cancelBubble = true;
- JScript code
function doSubmit(e) { if (formChecker != null) { clearInterval(formChecker); formChecker = null;} //清除定时器 e = e || window.event; if (e.stopPropagation) {e.stopPropagation();} e.cancelBubble = true; try { $("input[type='submit']").attr("disabled", "disabled"); swfu.startUpload(); //上传队列中第一个文件 } catch (ex) { $("input[type='submit']").removeAttr("disabled"); this.debug(ex); } return false; }
------解决方案--------------------
1、e是事件触发后传进来的一堆参数,可以自己打印一下看看。
2、判断是否有效,IE貌似不支持。
3、cancelBubble是ie以及版本较新的chrome opera组织事件冒泡的,firefox不支持,所以就要用stopPropagation来兼容ff。
所以2、3就是为了兼容性,
------解决方案--------------------
1、表示事件对象
2、先判断是否存在,再执行,很合乎常理啊
3、兼容浏览器,首先尝试使用DOM方法阻止事件流,否则就使用 IE 的 cancelBubble 属性。
------解决方案--------------------
可以这么理解
stopPropagation 是e 的方法或属性