您的位置:首页 > Web前端 > JQuery

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: