Javascript小技能总结(推荐)


Posted in Javascript onJune 02, 2016

废话不多说,直接上干货。。

具体代码如下所示:

/*
@@截取字符串长度,汉字算2个字符
@@return [string]+'...'
*/
var subString = function(str, len) {
var newLength = 0;
var newStr = "";
var chineseRegex = /[^\x00-\xff]/g;
var singleChar = "";
var strLength = str.replace(chineseRegex, "**").length;
for (var i = 0; i < strLength; i++) {
singleChar = str.charAt(i).toString();
if (singleChar.match(chineseRegex) != null) {
newLength += 2;
} else {
newLength++;
}
if (newLength > len) {
break;
}
newStr += singleChar;
}
if (strLength > len) {
newStr += "...";
}
return newStr;
}
--------------------------------------------------------------------------------
/*
@@对可见元素 进行隐藏
@@:visible 判断是否为课件元素
*/
function close_window(){
var flag=false;
$(".dialog_con").each(function(){
if($(this).is(":visible")){
flag=true;
}
})
if(flag==true){
$(".dialog_con").hide();
$(".dialogbox").hide(); 
}else{ 
window.android.callAndroidFinish();
}
} 
--------------------------------------------------------------------------------
/*
@@对持有不同设备的 设备 引用不同的样式
@@ if判断是否 某种设备
*/
<script type = "text/javascript" >
if (/(iPad|iPod|iOS)/i.test(navigator.userAgent)) { 
setActiveStyleSheet("pad.css"); 
} else if (/(Android)/i.test(navigator.userAgent)) {
setActiveStyleSheet("common.css"); 
}else if (/(iPhone6)/i.test(navigator.userAgent)) {
setActiveStyleSheet("iphone6.css"); 
}
function setActiveStyleSheet(filename){
document.write("<link href="+filename+" rel=stylesheet>");
}
</script>
--------------------------------------------------------------------------------
/*
@@回到顶部动画
@@
*/
$('a.top').click(function (e) {
e.preventDefault();
$(document.body).animate({scrollTop: 0}, 800);
});
--------------------------------------------------------------------------------
/*
@@检查图片是否加载完毕
@@有时你或许要检查图片是否完全加载完毕,才能在脚本中进行后续操作:
@@你也可以通过把 img 标签替换成 ID 或 class,来检查特定图片是否加载完成。
*/
$('img').load(function () {
console.log('image load successful');
});
--------------------------------------------------------------------------------
/*
@@动修复损坏的图片
@@如果你发现自己网站的图片链接挂了,一个一个替换很麻烦。这段简单的代码可以帮上大忙;
@@即使你没有任何损坏的链接,增加这段代码也不会有什么影响。
*/
$('img').on('error', function () {
$(this).prop('src', 'img/broken.png');
});
--------------------------------------------------------------------------------
/*
@@Hover 上的 Class 切换
@@如果用户的鼠标悬停在页面上某个可点击元素时,你想要改变这个元素的视觉表现。可以使用下面这段代码,当用户悬停时,为该元素增加一个 class;当用户鼠标离开后移除这个 class:
*/
$('.btn').hover(function () {
$(this).addClass('hover');
}, function () {
$(this).removeClass('hover');
});
-----------或---------
$('.btn').hover(function () {
$(this).toggleClass('hover');
});
--------------------------------------------------------------------------------
/*
@@禁用 input 字段
@@有时你也许想让表单的提交按钮或其文本输入框变得不可用,直到用户执行了一个特定行为(例如确认 “我已经阅读该条款” 的复选框)。增加 disabled attribute 到你的 input,就可以实现自己想要的效果
*/
$('input[type="submit"]').prop('disabled', true);
$('input[type="submit"]').prop('disabled', false);
--------------------------------------------------------------------------------
/*
@@停止链接加载
@@有时你不想链接跳转到某个页面或重加载该页面,而希望可以做一些其他事情,比如触发其他脚本。下面的代码是禁止默认行为的一个小诀窍
*/
$('a.no-link').click(function (e) {
e.preventDefault();
});
--------------------------------------------------------------------------------
/*
@@淡入淡出/滑动开关
@@淡入淡出与滑动是我们经常使用 jQuery 做成的动画效果。或许你只是想在用户点击某物时展现一个元素,使用 fadeIn 和 slideDown 都很棒。但如果想让该元素在第一次点击时显现,第二次点击时消失,下面的代码可以很好地完成
*/
// Fade
$('.btn').click(function () {
$('.element').fadeToggle('slow');
});
// Toggle
$('.btn').click(function () {
$('.element').slideToggle('slow');
});
--------------------------------------------------------------------------------
/*
@@简单的手风琴效果
@@这是一个快速实现手风琴效果的简单方法
*/
// Close all panels
$('#accordion').find('.content').hide();
// Accordion
$('#accordion').find('.accordion-header').click(function () {
var next = $(this).next();
next.slideToggle('fast');
$('.content').not(next).slideUp('fast');
return false;
});
--------------------------------------------------------------------------------
/*
@@使两个 Div 高度一样
@@有时你也许想让两个 div 拥有同样高度,不管它们里面有什么内容:
*/
$('.div').css('min-height', $('.main-div').height());
该例设置了 min-height,意味着它可以比主要 div 更大,但永远不能更小。但有一个更加灵活的方法是遍历一组元素的设置,然后将高度设为元素中的最高值:
var $columns = $('.column');
var height = 0;
$columns.each(function () {
if ($(this).height() > height) {
height = $(this).height();
}
});
$columns.height(height);
如果你想让所有列都有相同高度:
var $rows = $('.same-height-columns');
$rows.each(function () {
$(this).find('.column').height($(this).height());
}); 
--------------------------------------------------------------------------------
/*
@@在新标签/窗口打开站外链接
@@在一个新标签或者新窗口中打开外置链接,并确保站内链接会在相同的标签或窗口中打开:
*/
$('a[href^="http"]').attr('target', '_blank');
$('a[href^="//"]').attr('target', '_blank');
$('a[href^="' + window.location.origin + '"]').attr('target', '_self');
--------------------------------------------------------------------------------
/*
@@通过文本找到元素
@@通过使用 jQuery 中的 contains() 选择器,你可以找到某个元素中的文本。如果文本不存在,该元素将会隐藏:
*/
var search = $('#search').val();
$('div:not(:contains("' + search + '"))').hide();
--------------------------------------------------------------------------------
/*
@@视觉改变触发
@@当用户焦点在另外一个标签上,或重新回到标签时,触发 JavaScript:
*/
$(document).on('visibilitychange', function (e) {
if (e.target.visibilityState === "visible") {
console.log('Tab is now in view!');
} else if (e.target.visibilityState === "hidden") {
console.log('Tab is now hidden!');
}
});
--------------------------------------------------------------------------------
/*
@@Ajax 调用的错误处理
@@当某次 Ajax 调用返回 404 或 500 错误,就会执行错误处理。但如果没有定义该处理,其他 jQuery 代码或许会停止工作。可以通过下面这段代码定义一个全局 Ajax 错误处理
*/
$(document).ajaxError(function (e, xhr, settings, error) {
console.log(error);
});
--------------------------------------------------------------------------------
/*
@@插件链式调用
@@jQuery 支持链式调用插件,以减缓反复查询 DOM,并创建多个 jQuery 对象。看下面示例代码
*/
$('#elem').show();
$('#elem').html('bla');
$('#elem').otherStuff();
上面这段代码,可以通过链式操作大大改进:
$('#elem').show().html('bla').otherStuff();
还有另外一种方法,把元素缓存在变量中(前缀是 $ ):
var $elem = $('#elem');
$elem.hide();
$elem.html('bla');
$elem.otherStuff();
--------------------------------------------------------------------------------
/*
@@Jq 遍历 全选 全不选 反选
@@
*/
//全选 全不选
$('#checkAll').click(function () {
//判断是否被选中
var bischecked = $('#checkAll').is(':checked');
var fruit = $('input[name="check"]');
bischecked ? fruit.attr('checked', true) : fruit.attr('checked', false);
});
//反选 遍历checkbox 如果当前为选中 就设置为 不选中 反之相同
$("#tabVouchList tr").each(function () {
if ($("td:eq(0) input[name='check']", $(this)).is(':checked')) {
$(this).attr('checked', false);
} else {
$(this).attr('checked', true);
}
});

以上所述是小编给大家提供的js小技巧总结,希望对大家有所帮助!

Javascript 相关文章推荐
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
Jan 09 Javascript
jQuery编写widget的一些技巧分享
Oct 28 Javascript
js操作CheckBoxList实现全选/反选(在客服端完成)
Feb 02 Javascript
Extjs中RowExpander控件的默认展开问题示例探讨
Jan 24 Javascript
js实现三张图(文)片一起切换的banner焦点图
Aug 25 Javascript
关于在Servelet中如何获取当前时间的操作方法
Jun 28 Javascript
详解js的异步编程技术的方法
Feb 09 Javascript
打造通用的匀速运动框架(实例讲解)
Oct 17 Javascript
AngularJS下$http服务Post方法传递json参数的实例
Mar 29 Javascript
javascript实现手动点赞效果
Apr 09 Javascript
vue改变对象或数组时的刷新机制的方法总结
Apr 24 Javascript
详细分析Node.js 多进程
Jun 22 Javascript
Jquery为DIV添加click事件的简单实例
Jun 02 #Javascript
jquery中取消和绑定hover事件的实现代码
Jun 02 #Javascript
深入理解jQuery之事件移除
Jun 02 #Javascript
深入理解JQuery循环绑定事件
Jun 02 #Javascript
JQuery在循环中绑定事件的问题详解
Jun 02 #Javascript
Javascript字符串拼接小技巧(推荐)
Jun 02 #Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
Jun 02 #Javascript
You might like
1982年日本摄影师镜头下的中国孩子 那无忧无虑的童年
2020/03/12 杂记
PHP daddslashes 使用方法介绍
2012/10/26 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
2014/07/01 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
2019/03/25 PHP
PHP实现字母数字混合验证码功能
2019/07/11 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
JS类库Bindows1.3中的内存释放方式分析
2007/03/08 Javascript
jquery 必填项判断表单是否为空的方法
2008/09/14 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
2016/08/21 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
JavaScript中匿名函数的递归调用
2017/01/22 Javascript
localStorage的黑科技-js和css缓存机制
2017/02/06 Javascript
Angular.JS中的指令引用template与指令当做属性详解
2017/03/30 Javascript
详解用Node.js实现Restful风格webservice
2017/09/29 Javascript
如何让你的JS代码更好看易读
2017/12/01 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
2018/03/13 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
python类继承用法实例分析
2014/10/10 Python
详解Python的Django框架中的通用视图
2015/05/04 Python
基于Django contrib Comments 评论模块(详解)
2017/12/08 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
Pycharm中切换pytorch的环境和配置的教程详解
2020/03/13 Python
python 模拟登陆github的示例
2020/12/04 Python
Nike俄罗斯官方网站:Nike RU
2021/03/05 全球购物
毕业生精彩的自我评价分享
2013/10/06 职场文书
实习生个人找工作的自我评价
2013/10/30 职场文书
法律专业推荐信范文
2013/11/29 职场文书
世界遗产导游词
2015/02/13 职场文书
500字作文之周记
2019/12/13 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS