JsJquery小技巧
2015-06-10 17:18
696 查看
JS对URL编码 :encodeURI()
.Net对URL解码:HttpUtility.UrlDecode()
格式化输出百分数
function formatePercent(data){
if (data != undefined && !isNaN(data))
{
data=Number(data)*100;
return data.toFixed(2)+"%";
}
return "";
}
阻止事件冒泡
function stopBubble(e) {
// 如果提供了事件对象,则这是一个非IE浏览器
if (e && e.stopPropagation)
// 因此它支持W3C的stopPropagation()方法
e.stopPropagation();
else
// 否则,我们需要使用IE的方式来取消事件冒泡
window.event.cancelBubble = true;
}
//获取dom元素css样式值
function getStyle(dom,attr){
if(window.getComputedStyle){
return window.getComputedStyle(dom,false)[attr];
}else{
//兼容IE
return dom.currentStyle[attr];
}
}
事件句柄
e || window.event
光标坐标
e.clientX || e.pageX
HtmlCollection转数组
var arry = [].slice.call(lisDom);
function getXY(e){
var ev = e || window.event;
//坐标的获取
//ie678 pageX pageY (包含滚动条的scrollLeft 和scrollTop)
//ie9+ clientX clientY (不包含滚动条的scrollLeft 和scrollTop)
var x=0,y=0;
if(ev.pageX){
x = ev.pageX;
y = ev.pageY;
}else{
//拿到scrollTop 和scrollLeft
var sleft = 0,stop = 0;
//ie678---
if(document.documentElement){
stop =document.documentElement.scrollTop;
sleft = document.documentElement.scrollLeft;
}else{
//ie9+ 谷歌
stop = document.body.scrollTop;
sleft = document.body.scrollLeft;
}
x = ev.clientX + sleft;
y = ev.clientY + stop;
}
return {x:x,y:y};
};
// IE 687 IE9
// attachEvent() addEventListener()
//detachEvent() removeEventListener()
// e.srcElement e.target
//cancleBubble(true) e.stopPropagation()
//return false e.preventDefault()
//添加事件
function setEvent(dom,type,callback){
if(document.addEventListener){
dom.addEventListener(type,callback,false);
}else if(document.attachEvent){
dom.attachEvent("on"+type,callback,false);
}else{
dom["on"+type]=callback;
}
}
//移除事件
function offEvent(dom,type,callback){
if(dom.removeEventListener){
dom.removeEventListener(type,callback);
}else if(document.detachEvent){
dom.detachEvent("on"+type,callback);
}else {
delete dom["on"+type];
}
}
//阻止浏览器默认行为
function offDefault(e){
if(event.preventDefault){
return e.preventDefault();
}else{
e.returnValue=false;
}
}
//阻止事件冒泡
function stopEvent(e){
if(e.stopPropagation){
e.stopPropagation();
}else{
e.cancelBubble=true;
}
}
//混入
function mix (target,source){
//arguments:类数组---它有数组的长度,下标,但不能调用数组的sort push reverse
var args = [].slice.call(arguments);
var i = 1;
if(args.length == 1){
return target;
};
while((source = args[i++])){
for(var key in source){
target[key] = source[key];//混入代码
}
}
return target;
}
.Net对URL解码:HttpUtility.UrlDecode()
格式化输出百分数
function formatePercent(data){
if (data != undefined && !isNaN(data))
{
data=Number(data)*100;
return data.toFixed(2)+"%";
}
return "";
}
阻止事件冒泡
function stopBubble(e) {
// 如果提供了事件对象,则这是一个非IE浏览器
if (e && e.stopPropagation)
// 因此它支持W3C的stopPropagation()方法
e.stopPropagation();
else
// 否则,我们需要使用IE的方式来取消事件冒泡
window.event.cancelBubble = true;
}
//获取dom元素css样式值
function getStyle(dom,attr){
if(window.getComputedStyle){
return window.getComputedStyle(dom,false)[attr];
}else{
//兼容IE
return dom.currentStyle[attr];
}
}
事件句柄
e || window.event
光标坐标
e.clientX || e.pageX
HtmlCollection转数组
var arry = [].slice.call(lisDom);
function getXY(e){
var ev = e || window.event;
//坐标的获取
//ie678 pageX pageY (包含滚动条的scrollLeft 和scrollTop)
//ie9+ clientX clientY (不包含滚动条的scrollLeft 和scrollTop)
var x=0,y=0;
if(ev.pageX){
x = ev.pageX;
y = ev.pageY;
}else{
//拿到scrollTop 和scrollLeft
var sleft = 0,stop = 0;
//ie678---
if(document.documentElement){
stop =document.documentElement.scrollTop;
sleft = document.documentElement.scrollLeft;
}else{
//ie9+ 谷歌
stop = document.body.scrollTop;
sleft = document.body.scrollLeft;
}
x = ev.clientX + sleft;
y = ev.clientY + stop;
}
return {x:x,y:y};
};
// IE 687 IE9
// attachEvent() addEventListener()
//detachEvent() removeEventListener()
// e.srcElement e.target
//cancleBubble(true) e.stopPropagation()
//return false e.preventDefault()
//添加事件
function setEvent(dom,type,callback){
if(document.addEventListener){
dom.addEventListener(type,callback,false);
}else if(document.attachEvent){
dom.attachEvent("on"+type,callback,false);
}else{
dom["on"+type]=callback;
}
}
//移除事件
function offEvent(dom,type,callback){
if(dom.removeEventListener){
dom.removeEventListener(type,callback);
}else if(document.detachEvent){
dom.detachEvent("on"+type,callback);
}else {
delete dom["on"+type];
}
}
//阻止浏览器默认行为
function offDefault(e){
if(event.preventDefault){
return e.preventDefault();
}else{
e.returnValue=false;
}
}
//阻止事件冒泡
function stopEvent(e){
if(e.stopPropagation){
e.stopPropagation();
}else{
e.cancelBubble=true;
}
}
//混入
function mix (target,source){
//arguments:类数组---它有数组的长度,下标,但不能调用数组的sort push reverse
var args = [].slice.call(arguments);
var i = 1;
if(args.length == 1){
return target;
};
while((source = args[i++])){
for(var key in source){
target[key] = source[key];//混入代码
}
}
return target;
}
相关文章推荐
- Jquery.KinSlideshow图片轮播插件
- [前端] jquery方法 遍历返回的对象数组
- 全新jquery多点滑动幻灯片——全屏动画animateSlide
- jQuery siblings() 方法
- jQuery Validation Engine
- javascript/jquery 常见功能实现(持续更新...)
- JQuery
- jQuery1.9中改变的地方
- jquery自动切换图片
- jquery 初步 (一)
- seajs模块化jQuery与jQuery插件
- 翻译jquery官方的插件制作方法
- jQuery 设置属性的值
- 【jQuery:遍历相同class的所有值,遍历某一列td的值】
- 【jQuery:遍历相同class的所有值,遍历某一列td的值】
- jQuery操控DOM元素-访问页面的元素
- 【jQuery:遍历相同class的所有值,遍历某一列td的值】
- jQuery对新添加的控件添加响应事件
- 查看jquery绑定的事件函数
- jQuery 限制文本框只能输入数字