JavaScript 开发经验总结

发布于 2024-03-18 04:15:48 字数 2889 浏览 14 评论 0

一、JS 动画与动作不一致解决

if(!$( "#handle").is(":animated")){
//判断元素是否处于动画状态
}

二、停止事件冒泡

event.stopPropagation();
- 禁止 JS 报错
window.onerror = function(){
return true ; 
}

try {
/*try to do*/
} catch(e){
/*do this if try error */
}

三、查看 JS 对象属性

var res = '' ; 
var obj = eval( obj );
for( var p in eval( obj ) ){
var prop = p + ':' + obj[p] + '\n' ; 
res += prop ; 
}
alert( res );

四、页面刷新时禁用提交按钮

window.onbeforeunload = function(){
$(':submit').attr('disabled',true);
}

注意Opera 浏览器不支持,其他浏览器避免在同一页面中使用 "javascrpt:" 等伪协议

五、获取事件

var getEvent = function(){
var ieEvent = window.event ; 
var ffEvent = arguments.callee.caller.arguments[0] ; 
//arguments.callee 当前执行函数
//arguments.callee.caller 当前执行函数的调用者
//arguments.callee.caller.arguments[0]当前函数调用者的第一个参数
var e = ieEvent || ffEvent ; 
return e ;
}
  • 获取鼠标距离浏览器顶部 左侧的实际距离 兼容 IE
function getXY(ev){
var ev = ev || window.event;
var xx  = 0;
var yy = 0;
if(ev.pageX){ //iE9+
xx = ev.pageX;
yy = ev.pageY;
}else{ 
//IE678 clientX,clientY + scroll
var scrollTop = document.documentElement.scrollTop || 
   document.body.scrollTop;//IE9+
var scrollLeft = document.documentElement.scrollLeft || 
document.body.scrollLeft;//IE9+     
xx = ev.clientX + scrollLeft;
yy = ev.clientY + scrollTop;
}
return {
x:xx,
y:yy
};

}

六、获取键盘码

var getKCode = function(){
var ieEvent = window.event ; 
var ffEvent = arguments.callee.caller.arguments[0] ; 
var e = ieEvent || ffEvent ; 
var kCode = e.keyCode || e.which ;
return kCode ;
}

七、 鼠标滑入/滑出样式切换

$("div").on("mouseover mouseout", function(){
    $(this).toggleClass("over");
 });

八、点击鼠标,显示/隐藏切换

$("#panel h5.head").toggle(function(){
$(this).toggleClass("highlight");
$(this).next().toggle();
},function(){
$(this).toggleClass("highlight");
$(this).next().toggle();
});

九、JS 调试

console.log() ;//打印变量
console.dir() ; //打印对象
console.dirxml() ; //打印节点
console.trace() ; //打印函数调用轨迹
window.document.title = str;

十、为子元素集合绑定事件

$("div").delegate("button","click",function(){
$("p").slideToggle();
});

十一、自定义 IE 浏览器渲染方式(解决 IE10JS 或插件失效):

如果安装了 Chrome 内核,则使用 Chrome 内核来渲染页面 [chrome=1] ,如果未安装,则使用最高版本的 IE 内核进行渲染 [IE=edge]:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

十二、注册事件

// 标准浏览器
form1.addEventListener('submit', function(e){
    e.preventDefault();//阻止浏览器默认动作
e.stopPropagation();//阻止事件流产生
});
// IE8 及更早版本 IE 浏览器
form1.attachEvent('submit', function(){
event.cancelBubble = true; //阻止浏览器默认动作--IE8 及更早版本 IE 浏览器
event.returnValue = false; //阻止事件流产生--IE8 及更早版本 IE 浏览器
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

转身泪倾城

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

玍銹的英雄夢

文章 0 评论 0

我不会写诗

文章 0 评论 0

十六岁半

文章 0 评论 0

浸婚纱

文章 0 评论 0

qq_kJ6XkX

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文