#2015
展开↯#2016
作者:广西南宁市
setTimeout,clearTimeout,setInterval,clearInteral详解
设置定时器,在一段时间之后执行指定的代码,setTimeout与setInterval的区别在于setTimeout函数指定的代码仅执行一次
方法一:
window.setTimeout("alert('ok')",5000);
方法二:
window.setTimeout(function()
{
alert("Ok");
}, 5000);
方法三:
function showAlert()
{
alert("ok");
}
window.setTimeout(showAlert, 5000);
clearTimeout
清除setTimeout函数设置的定时器
function showAlert()
{
alert("ok");
}
var tt = window.setTimeout(showAlert, 5000);
window.clearTimeout(tt);
1.setTimeout,clearTimeout:设置暂停
使用window对象的setTimeout()方法设置暂停。该方法接受两个参数,要执行的代码和在执行它之前要等待的毫秒数(1/1000秒)。第一个参数可以是代码串(与eval()函数的参数相同),也可以是函数指针。例如,下面的代码都在1秒钟后显示一条警告:
setTimeout("alert('Hello World!')",1000);
setTimeout(function() { alert('Hello World!'); },1000);
当然,还可以引用以前定义的函数:
function sayHelloWorld()
{ alert("Hello World!"); }
setTimeout(sayHelloWorld,1000);
调用setTimeout()时,它创建一个数字暂停ID,与操作系统中的进程ID相似。暂停ID本质上是要延迟的进程ID,再调用 setTimeout()后,就不应该再执行它的代码。要取消还未执行的暂停,可调用clearTimeout()方法,并将暂停ID传递给它:
var iTimeoutId = setTimeout("alert('Hello World!')",1000);
alert(iTimeoutId);
clearTimeout(iTimeoutId);
其中,iTimeoutId 是一串数字,例如上述代码打出的iTimeoutId。
你也许会问:“为什么要定义暂停,又在执行它之前将其取消呢?”请 考虑在大多数应用程序中可见的工具提示。当把鼠标移动到一个按钮上时,停留一会,等待出 现黄色的文本框,提示该按钮的功能。如果只是短暂的把鼠标该按钮上,然后很快将其移动到另一个按钮上,那么第一个按钮的工具提示就不会显示,这就是要在执 行暂停代码前取消它的原因。因为你在执行代码前只想等待指定的时间量。如果用户的操作产生了不同的结果,则要取消该暂停。
2.setInterval,clearInterval设置时间间隔
时间间隔与暂停的运行方式相似,只是它无限此地每隔指定的时间段就重复执行一次指定的代码。可调用setInterval()方法设置时间间隔,它的参数与setTimeout()相同,是要执行的代码和每次执行之间等待的毫秒数。例如:
setInterval("alert('Hello world!')",1000);
setInterval(function() { alert("Hello world!"); },1000);
function sayHelloWorld()
{ alert("Hello World!"); }
setInterval(sayHelloWorld,1000);
此外,与setTimeout()类似,setInterval()方法也创建时间间隔ID,以标识要执行的代码。clearInterval()方法可 用这个ID阻止再次执行该代码。显然。这一点在使用时间间隔时更重要,因为如果不取消时间间隔,就会一直执行它,直到页面被卸载为止。下面是时间间隔用法的一个常见示例:
var iNum = 0;
var iMax = 100;
var iIntervalId = null;
function incNum()
{ iNum++;
if(iNum == iMax)
{ clearInterval(iIntervalId); } }
iIntervalId = setInterval(incNum, 500);
在这段代码中,每隔500毫秒就对数字iNum进行一次增量运算,直到它达到最大值(iMax), 此时该时间间隔将被清除。也可以用暂停实现该操作,这样即不必跟踪时间间隔的ID,代码如下:
var iNum = 0;
var iMax = 100;
function incNum()
{ iNum++;
if(iNum != iMax)
{ setTimeout(incNum,500); } }
setTimeout(incNum,500);
这段代码使用链接暂停,即setTimeout()执行的代码页调用了setTimeout()。如果在执行过增量运算后,iNum不等于 iMax,就调用setTimeout()方法。不必跟踪暂停ID,也不必清除它,因为代码执行后,将销毁暂停ID。
clearInterval() 方法可取消由 setInterval() 设置的 timeout。
clearInterval() 方法的参数必须是由 setInterval() 返回的 ID 值。
实例
下面这个例子将每隔 50 毫秒调用 clock() 函数。您也可以使用一个按钮来停止这个 clock:
<input type="text" id="clock" size="35" />
<script language=javascript>
var int=self.setInterval("clock()",50)
function clock()
{
var t=new Date()
document.getElementById("clock").value=t
}
</script>
<button onclick="int=window.clearInterval(int)">Stop interval</button>Run code
Cut to clipboard
文章:自定义提示层弹出层弹窗jq插件代码 发表时间:2016-11-15, 11:02:56
#2017
作者:广西南宁市
jquery随机获取0-40其中一个数
parseInt(40*Math.random())Run code
Cut to clipboard
文章:自定义提示层弹出层弹窗jq插件代码 发表时间:2016-11-15, 11:02:12
#2018
作者:广西南宁市
JavaScript获取当前时间戳
第一种方法:
var timestamp = Date.parse(new Date());
结果:1280977330000
第二种方法:
var timestamp = (new Date()).valueOf();
结果:1280977330748
以上代码将获取从 1970年1月1日午夜开始的毫秒数。二者的区别是,第一种方法的毫秒位上为全零,即只是精确到秒的毫秒数
如题所示,返回unix时间戳所对应的具体时间:
var time = '1278927966';
// 关键在乘1000,因为时间是相对于1970年开始的,所以乘1000后将会转到当前时间。
var real_time = new Date(time) * 1000;
document.write(real_time);
代码很简单就完成时间戳的转换。
javascript 中使用 new Date().getTime() 方法
IE8 以上版本可以使用 直接使用Date.now()方法
//IE8以下版本
if (!Date.now) {
Date.now = function() { return new Date().getTime(); };
}
jQuery 获取时间戳 $.now()
var timestamp = $.now();
以下是其它网友的补充:
JavaScript 获取当前时间戳:
第一种方法:
var timestamp = Date.parse(new Date());
结果:1280977330000
第二种方法:
var timestamp = (new Date()).valueOf();
结果:1280977330748
第三种方法:
var timestamp=new Date().getTime();
结果:1280977330748
第一种:获取的时间戳是把毫秒改成000显示,
第二种和第三种是获取了当前毫秒的时间戳。Run code
Cut to clipboard
文章:自定义提示层弹出层弹窗jq插件代码 发表时间:2016-11-15, 11:01:17
#2019
作者:广西南宁市
“我欲借汝一物,以压众心,汝勿吝。”
“丞相欲用何物?”“欲借汝头以示众而。”“吾实无罪!”
“吾亦知汝无罪,但不杀汝,军心必变。”
于是无辜的粮草官就被杀了,不明真相的士兵一片欢呼,为主公叫好,军心得稳,随后获胜。
“丞相欲用何物?”“欲借汝头以示众而。”“吾实无罪!”
“吾亦知汝无罪,但不杀汝,军心必变。”
于是无辜的粮草官就被杀了,不明真相的士兵一片欢呼,为主公叫好,军心得稳,随后获胜。
文章:他不是脾气暴躁,只是不能被打扰 发表时间:2016-11-15, 09:19:11
#2020
作者:广西南宁市
jQuery 操作 CSS
addClass() - 向被选元素添加一个或多个类
removeClass() - 从被选元素删除一个或多个类
toggleClass() - 对被选元素进行添加/删除类的切换操作
css() - 设置或返回样式属性
jQuery绑定select的onchange事件
$(document).ready(function(){
$('#selectid').change(function(){
alert($(this).children('option:selected').val()); //弹出select的值
});
})
jquery获取select选中值
jquery获取select选择的文本与值
获取select 选中的 text : $("#ddlregtype").find("option:selected").text();
获取select选中的 value: $("#ddlregtype ").val();
获取select选中的索引: $("#ddlregtype ").get(0).selectedindex;
jquery点击文本框全选文字
$("input:text").click(function(){
$(this).select();
});Run code
Cut to clipboard
文章:自定义提示层弹出层弹窗jq插件代码 发表时间:2016-11-14, 17:29:33
#2021
作者:广西南宁市
前端开发必知的15个jQuery小技巧
下面这些简单的小技巧能够帮助你玩转jQuery。
下面这些简单的小技巧能够帮助你玩转jQuery。
1、返回顶部按钮
通过使用jQuery中的animate 和scrollTop 方法,不用插件就可以创建一个滚动到顶部的简单动画:
// Back to top
$('.top').click(function (e) {
e.preventDefault();
$('html, body').animate({scrollTop: 0}, 800);
});
<!-- Create an anchor tag -->
<a class="top" href="#">Back to top</a>
改变scrollTop 的值可以更改你想要放置滚动条的位置。所有你真正需要做的是在800毫秒的时间内设置文档主体的动画,直到它滚动到文档的顶部。
注:小心scrollTop的一些错误行为。
2、预加载图像
如果你的网页要使用大量开始不可见的(例如,悬停的)图像,那么可以预加载这些图像:
$.preloadImages = function () {
for (var i = 0; i < arguments.length; i++) {
$('<img>').attr('src', arguments[i]);
}
};
$.preloadImages('img/hover-on.png', 'img/hover-off.png');
3、检查图像是否加载
有时为了继续脚本,你可能需要检查图像是否全部加载完毕:
$('img').load(function () {
console.log('image load successful');
});
你也可以用ID或类替换<img>标签来检查某个特定的图像是否被加载。
4、自动修复破坏的图像
逐个替换已经破坏的图像链接是非常痛苦的。不过,下面这段简单的代码可以帮助你:
$('img').on('error', function () {
if(!$(this).hasClass('broken-image')) {
$(this).prop('src', 'img/broken.png').addClass('broken-image');
}
});
即使没有任何断掉的链接,加上这一段代码也不会让你有任何损失。
5、悬停切换类
假设你希望当用户将鼠标悬停在可点击的元素上时,它会改变颜色。那么你可以在用户悬停的时候添加类到元素中,反之则删除类:
$('.btn').hover(function () {
$(this).addClass('hover');
}, function () {
$(this).removeClass('hover');
});
你只需要添加必要的CSS即可。更简单的方法是使用toggleClass 方法:
$('.btn').hover(function () {
$(this).toggleClass('hover');
});
注:可能在这种情况下,CSS这种解决方案更快,不过了解这个方法很有必要。
6、禁用输入字段
有时候,你可能想要禁用表格的提交按钮或它的某一项文字输入直到用户执行了特定操作(例如,勾选“我已阅读相关条款”复选框)。添加 disabled属性到你的输入就可以在你想要的时候才启用它:
$('input[type="submit"]').prop('disabled', true);
然后你只需要运行输入的prop 方法就可以了,不过disabled 的值要设置为false:
$('input[type="submit"]').prop('disabled', false);
7、停止加载链接
有时候,你既不需要链接到某个特定的网页,也不想要重新加载页面——你可能希望链接做点别的事情,例如说触发一些其他脚本。这就要在阻止默认动作上做文章了:
$('a.no-link').click(function (e) {
e.preventDefault();
});
8、淡入/滑动切换
滑动和淡入都是我们用jQuery做动画的时候大量运用的东西。如果你只是想在用户点击之后展示一个元素的话,那么用fadeIn 和slideDown 方法就很完美。但是,如果你想要元素在第一次点击的时候出现,然后在第二次点击的时候消失的话,那么可以试试下面的代码:
// Fade
$('.btn').click(function () {
$('.element').fadeToggle('slow');
});
// Toggle
$('.btn').click(function () {
$('.element').slideToggle('slow');
});
9、简单的手风琴
这是一个可快速生成手风琴的简单方法:
// 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;
});
通过添加这个脚本,你真正需要做的仅仅是在页面上添加必要的HTML元素,这样它就可以运行工作了。
10、让两个div高度相同
有时候,你需要让两个div无论包含什么内容都拥有相同的高度:
$('.div').css('min-height', $('.main-div').height());
设置 min-height,这意味着它可以比主div大但绝对不能比主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());
});
11、在新标签页/窗口打开外部链接
在一个新的浏览器tab或窗口中打开外部链接,并确保同一个来源的链接能在同一个tab或者窗口中打开:
$('a[href^="http"]').attr('target', '_blank');
$('a[href^="//"]').attr('target', '_blank');
$('a[href^="' + window.location.origin + '"]').attr('target', '_self');
注意:window.location.origin 在IE10中无效。修复的时候要小心这个问题。
12、通过文本查找元素
通过使用jQuery中的contains() 选择器,你可以找到元素内容的文本。如果文本不存在,那就隐藏该元素:
var search = $('#search').val();
$('div:not(:contains("' + search + '"))').hide();
13、在改变Visibility时触发
当用户不再关注某个tab,或重新聚焦原来的那个tab上时,触发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!');
}
});
14、AJAX调用错误处理
当Ajax调用返回404或500错误时,就执行错误处理程序。如果没有定义处理程序,其他的jQuery代码或会就此罢工。定义一个全局的Ajax错误处理程序:
$(document).ajaxError(function (e, xhr, settings, error) {
console.log(error);
});
15、链式插件调用
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();
链式和高速缓存的方法都是jQuery中可以让代码变得更短和更快的代最佳做法。Run code
Cut to clipboard
文章:常用html、demo代码 发表时间:2016-11-14, 16:05:04
#2022
展开↯#2023
展开↯#2024
作者:广西南宁市
你被埋葬在了自己的身体里。永远。
你在做一次常规手术。
麻醉医师出现了失误,最后你眼睛瞎了耳朵聋了人也瘫痪了。
你醒来还在想房间好黑,接着很快有人进来打开了房间里所有的灯。但你等了好久却没有人来到你的面前。
你试着尖叫想要得到帮助,但你听不到你自己尖叫的声音。
你感觉有人在触摸你的身体,但你却无法作出回应。你害怕极了,但你动不了。
你的情绪和记忆都完好无损,但你无法传达出来。你被埋葬在了自己的身体里。永远。
灵感:耶稣受难记里的一段独白。
你在做一次常规手术。
麻醉医师出现了失误,最后你眼睛瞎了耳朵聋了人也瘫痪了。
你醒来还在想房间好黑,接着很快有人进来打开了房间里所有的灯。但你等了好久却没有人来到你的面前。
你试着尖叫想要得到帮助,但你听不到你自己尖叫的声音。
你感觉有人在触摸你的身体,但你却无法作出回应。你害怕极了,但你动不了。
你的情绪和记忆都完好无损,但你无法传达出来。你被埋葬在了自己的身体里。永远。
灵感:耶稣受难记里的一段独白。
文章:他不是脾气暴躁,只是不能被打扰 发表时间:2016-11-14, 14:14:57
#2028
作者:广西南宁市
网页添加skype控件
MSN在线聊天代码
A href="msnim:chat?contact=liukecheng88@hotmail.com" target=blank alt='MSN聊天'MSN聊天/A
SKYPE SDK
feikeq改为你的ID
a href="skype:feikeq?chat" onclick="return skypeCheck();"开始 Skype 文字聊天
a href="skype:feikeq?userinfo" onclick="return skypeCheck();"查看 Skype 资料
a href="skype:feikeq?add" onclick="return skypeCheck();"添加到 Skype 联系人列表
a href="skype:feikeq?call" onclick="return skypeCheck();"开始 Skype 语音呼叫
a href="skype:feikeq?voicemail" onclick="return skypeCheck();"使用 Skype 发送语音邮件
a href="skype:feikeq?sendfile" onclick="return skypeCheck();"使用 Skype 发送文件Run code
Cut to clipboard
<a href="<?php
if($_COOKIE['GZ_think_language']=='en')
echo 'skype:'.$skypeid.'?chat" onclick="return skypeCheck();';
else echo 'http://wpa.qq.com/msgrd?v=3&uin='.$qq.'&site=http://www.yifangvisa.com/&menu=yes';
?>" target="_blank"><div class="sidebox"><img src="/images/<?php
if($_COOKIE['GZ_think_language']=='en')
echo 'en';
?>qq.png" /><?php
if($_COOKIE['GZ_think_language']=='cn')
echo 'QQ客服';
else echo $yblqq;
?></div></a>Run code
Cut to clipboard
文章:常用html、demo代码 发表时间:2016-11-11, 11:30:48
#2029
作者:广西南宁市
PHP实现常用邮箱的基本判断
<?php
//封装邮箱验证函数
function check_email($email){
if (ereg('^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+',$email)){
return true;
}else{
return false;
}
}Run code
Cut to clipboard
//调用示例
$email="1909970983@qq.com";
$re=check_email($email);
if($re){
echo "邮箱格式正确!";
}else{
echo "错误格式!";
}
//运行结果:邮箱格式正确Run code
Cut to clipboard
文章:常用html、demo代码 发表时间:2016-11-11, 10:09:23
#2030
作者:广西南宁市
用js删除onclick事件
重新赋值为空,就OK了。
document.getElementByName("aaa").onclick = function(){};Run code
Cut to clipboard
重新赋值为空,就OK了。
文章:常用html、demo代码 发表时间:2016-11-09, 09:04:41
#2031
作者:广西南宁市
人真的是一个琢磨不透的生物,明明是你们的慢性毒药害死了夜莺,却偏偏要找出最后一晚陪在夜莺身边的人来问责。
文章:人脉、金钱、影响力都是与能力成比例的,还是低下头本本分分做自己该做的事情,只有自己强大了,那些都是附属品! 发表时间:2016-11-05, 11:38:46
#2032
作者:广西南宁市
是时候请他的好朋友克林顿总统出手相救了。
文章:人脉、金钱、影响力都是与能力成比例的,还是低下头本本分分做自己该做的事情,只有自己强大了,那些都是附属品! 发表时间:2016-11-05, 11:36:23
#2033
作者:广西南宁市
古代两位禅师的对话。寒山问拾得:世间有人谤我、欺我、辱我、笑我、轻我、骗我、贱我,如何处之?拾得笑曰:只要忍他、让他、避他、由他、耐他、敬他、不要理他,再过几年,你且看他。
——6月3日芮成钢微博
——6月3日芮成钢微博
文章:人脉、金钱、影响力都是与能力成比例的,还是低下头本本分分做自己该做的事情,只有自己强大了,那些都是附属品! 发表时间:2016-11-05, 11:34:30
$(".zx>li").click(function() { clearTimeout(cce); }); var cce; $(window).scroll(function() { var wintop = $(window).scrollTop(); clearTimeout( cce );//终止触发的setTimeout防止重复执行 cce = setTimeout(function() { if (wintop > 200) { if (!$(".bh").hasClass("gb")) { $(".bh").addClass("gb"); $(".bh").animate({ top: 57 }, 500); return false; } } }, 1000); });