return false
来源:互联网 发布:sql server union 编辑:程序博客网 时间:2024/05/19 06:35
DOM的事件传播有两个类型,一个是捕获(从父节点到子节点),一个是冒泡(从子节点到父节点),所以一个事件触发时可以有多个处理器去处理它,DOM标准约定了return false后就会阻止事件继续传播。
jQuery中each里面用return false代替break;return ture 代替continue。
function a(){
if(true){
//
return true;
}
}
在一个function里有一个each,在each里某种条件 成立的话,就把这个function返回true或者false。
但是在each代码块内不能使用break和continue,要实现break和continue的功能的话,要使用其它的方式
break----用return false;
continue --用return ture;
所以在each里想使用return true给这个function返回时,其实只是让each继续执行而以
连each都没有中断,所以function也就不能return了 。
由于jQuery的each是通过循环调用回调函数的方式实现的,所以在函数内写的break只适用于函数内部的逻辑,并不能对函数外层的循环起到作用,所以break不管用。具体可以分析一下jQuery的源码,下面以jQuery2.1.4中的each方法举例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
each:
function
( obj, callback, args ) {
var
value,
i = 0,
length = obj.length,
isArray = isArraylike( obj );
//如果obj是一个类似数组的结构(可用for遍历的),则为true
if
( args ) {
if
( isArray ) {
for
( ; i < length; i++ ) {
value = callback.apply( obj[ i ], args );
//循环调用
if
( value ===
false
) {
//如果返回值全等于(包括类型和值)false,就退出循环
break
;
}
}
}
else
{
for
( i
in
obj ) {
//这种是对象的,需要用for in遍历
value = callback.apply( obj[ i ], args );
if
( value ===
false
) {
break
;
}
}
}
// A special, fast, case for the most common use of each
}
else
{
if
( isArray ) {
for
( ; i < length; i++ ) {
value = callback.call( obj[ i ], i, obj[ i ] );
if
( value ===
false
) {
break
;
}
}
}
else
{
for
( i
in
obj ) {
value = callback.call( obj[ i ], i, obj[ i ] );
if
( value ===
false
) {
break
;
}
}
}
}
return
obj;
}
由源码可以看出,只有回调函数返回的值为false时,才会退出循环。
0 0
- return false
- return false
- return ture & return false
- return,return false,return true
- return false 与 return true
- break,continue,return,return false,
- Js:return /return false/ return true
- JS中的return / return false / return true
- return 、 return false、return true区别
- 关于 return return false return true
- js中return、return true、return false
- js:return;return true;return false;区别
- return、return true和return false
- Javascript -- return false / true
- return false 正确运用
- return false 正确运用
- jquery:return false
- onsubmit return false
- jQuery判断Dom对象是否存在
- position:absolute 的深入探讨
- 浏览器渲染页面过程描述,DOM编程技巧以及重排和重绘
- 数据结构(4)--双链表
- CSS position: absolute、relative定位问题不详解
- return false
- CSS样式表继承小结
- 扩展
- CSS文本超出2行就隐藏并且显示省略号
- div里面的内容超出自身高度时,显示省略号
- CSS颜色渐变
- CSS3 box-sizing属性
- CSS3阴影 box-shadow的使用和技巧总结
- poj 2240 Arbitrage(floyd/bellman判正圈)