Math.random() -- 返回0和1之间的伪随机数 可能为0,但总是小于1,[0,1)。
2
3 Math.random()*(20-10)+10 //返回10-20之间的随机数。
4
5 Math.random()*(n-m)+m //返回(m-n)之间的随机数。
Math.floor() -- 向下取得一个最接近的整数
Math.floor(12.7)//返回12
Math.floor(12.0)//返回12
Math.ceil() -- 向上取得一个最接近的整数
Math.ceil(12.7)//返回13
Math.ceil(12.0)// 返回12
Math.round() -- 进行四舍五入
Math.round(12.7)//返回13
Math.round(12.0)//返回12
这些函数平常实际使用中大多相互配合:例如要想生成 0 - 10 之间的随机整数,可以这样写
//其中Math.random()*10返回 [0 - 10)之间的随机数,再利用Math.floor(),只取出其中的整数。
//那么依据上述介绍,这样因为Math.ceil()向上取整,那么则返回 [1 - 10] 之间的随机整数。
本文链接
1、在DOM对象的实践操作中,既然存在用于绑定事件的bind方法,也相应存在用于移出绑定事件的方法,在JQuery中,可以通过unbind方法移除所有绑定的事件或某一个事件。
2、示例代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>unbind方法移除绑定事件</title>
<script type="text/javascript" src=/blog_article/"jquery-1.8.3.min.js"></script>_br/index.html>
<script type="text/javascript">
$(function(){
function oClick(){ //自定义事件
$("#divTip").append("<div>这是按钮二绑定的事件</div>");
};
$("input:eq(0)").bind("click",function(){
$("#divTip").append("<div>这是按钮一绑定事件</div>");
});
$("input:eq(1)").bind("click",oClick);
$("input:eq(2)").bind("click",function(){
$("input").unbind("click",oClick);
$("#divTip").append("<div>删除按钮二事件</div>");
});
$("input:eq(3)").bind("click",function(){
$("input").unbind();
$("#divTip").append("<div>移出所有按钮绑定的事件</div>");
});
})
</script>
</head>
<body>
<div>
<input id="button1" class="btn" value="按钮一" type="button"/>
<input id="button2" type="button" value="按钮二" class="btn"/>
<input id="button3" type="button" value="删除按钮二事件" class="btn"/>
<input id="button4" type="button" value="删除所有事件" class="btn"/>
</div>
<div id="divTip"></div>
</body>
</html>
3、效果图预览:
点击按钮一和按钮二:
点击删除按钮二事件在点击按钮二无反应点击按钮一有反应:
点击删除所有事件后点击所有按钮无反应:
这两天阅读了jQuery源码,感叹JS的神奇。在此写一些对此感悟。
jQuery类库框架的分析:
* @author Nightink
* @date 2013-02-02
* Ink架构基础的是 元素对象和命名空间
* 参数了jQuery架构模式
* 此案例用来分析jQuery框架结构
*/
(function(window) {
var rootInk, //保留原生Ink对象 利用闭包的形式,保留此对象可在页面运行过程中不被,垃圾回收
rootObject,
Ink = function(name, age) { //设定了返回Ink元素对象,并且创建了Ink的命名空间
return new Ink.prototype.init(name, age, rootInk);
};
//重写了Prototype原型链,针对框架库需求定制框架核心函数
Ink.fn = Ink.prototype = { //提供给Ink元素对象的方法
constructor: Ink,
//设置默认Ink对象长度为零
length: 0,
init: function(name, age, rootInk) { //简略init过程,演示结构。
if( !name ) {
return this;
}
//var o = new Object();
this.name = name;
this.age = age;
this.length ++;
//return o;
},
say: function() {
console.log('成员函数');
},
toArray: function() {
console.log('对象转换成数组');
},
eq: function(i) {
var length = this.length;
console.log(length);
}
};
//通过共享原型实现提供元素对象成员方法
Ink.prototype.init.prototype = Ink.fn;
//Ink库核心函数,通过插件机制实现库内容的多样性
Ink.extend = Ink.fn.extend = function() {
var name, self = this, target = arguments[0];
if( typeof target === 'object' ) {
for ( name in target) {
self[name] = target[name];
};
}
console.log('继承函数');
};
//Ink.extend 提供Ink命名空间插件机制,
//可实现针对库的工具类函数存放,防止和其他类型的命名冲突
Ink.extend({
log: function(str) {
console.log(str);
},
print_r: function(str) {
return str;
}
});
//Ink.fn.extend 提供的是Ink元素对象的插件机制
Ink.fn.extend({
review: function() {
console.log('重绘函数');
},
ajax: function() {
console.log('ajax');
}
});
rootInk = Ink('Nightink'); //初始化了原生对象
//test 闭包变量
//rootObject = { name: 'ink', age: '22', time: '2013-02-02' }
window.Ink = Ink;
})(window);
本文链接