简单分享javascript、jquery实用demo

前端追随的javascript、jquery

javascript判断H5页面离开

 1 function onbeforeunloadFn(){
 2     console.log(‘离开页面‘);
 3     //...code
 4 }
 5 function showOnbeforeunload(flags){
 6     if(flags){
 7         document.body.onbeforeunload = onbeforeunloadFn;
 8     }else{
 9         document.body.onbeforeunload = null;
10     }
11 }
12 $(function(){
13     showOnbeforeunload(true);
14 })

jq判断img标签图片地址是否已经加载完毕

1 imgStatus = 0;
2 $("img").each(function(){
3     if(this.complete){/*this.complete代表图片加载完成*/
4         imgStatus++;
5     }
6 });

iframe获取内容-和设置

1 if($(".ad_show iframe").size() > 0 ){
2     $(".ad_show iframe").attr("id","iframead");/*设置iframe的id*/
3     /*获取id为iframead的iframe的dom对象*/
4     var iframebox = document.getElementById("iframead").contentWindow;
5     /*设置兜底内容*/
6     iframebox.document.body.innerText = "1234";
7 }

javascript获取浏览器上一页的url

1 /*返回上一次url,如果是新窗口则不能获取到*/
2 var beforeUrl = document.referrer;

关于头疼的移动端点击冒泡事件

 1 <script>
 2 $(".class").live(‘tap‘,function(oEvent){
 3     e = window.event || oEvent;
 4     if(e.stopPropagation){
 5         e.stopPropagation();
 6     }else{
 7         e.cancelBubble = true;
 8     }
 9     e.preventDefault();
10 });
11 </script>
12 /*虽说tap事件可以阻止大部分冒泡事件,但是还是有一小部分移动端不吃你这套,那么有另外一个解决办法*/
13 /*将层级间的事件通过H5属性data-flag="true"来控制*/
14 <!--html-->
15 <div class="parentTap" data-flag="true">
16     <div class="childTap" data-flag="false">
17         <div class="childsTap" data-flag="false">
18             ....
19         </div>
20     </div>
21 </div>
22 <!--给父级parentTap绑定一个点击事件-->
23 <!--给子级childTap绑定一个点击事件-->
24 <!--给子孙级childsTap绑定一个点击事件-->
25 <script type="text/javascript">
26     var bindInit = function(className){
27         if($(className).size() > 0){
28             $(className).on(‘tap‘,function(oEvent){
29                 e = window.event || oEvent;if(e.stopPropagation){e.stopPropagation();}else{e.cancelBubble = true;}e.preventDefault();
30                 var flag = $(this).data(‘flag‘);
31                 if(flag){/*为true时允许点击进入事件*/
32                     /* code... */
33                 }
34             });
35         }
36     }
37     $(function(){
38         bindInit(‘.parentTap‘);
39         bindInit(‘.childTap‘);
40         bindInit(‘.childsTap‘);
41     });
42 </script>

简单倒计时功能

 1 <div class="newTime" data-end="2016-10-13 23:59:59" data-now="2016-10-13 03:59:59">
 2     <div class="t_d"></div>
 3     <div class="t_h"></div>
 4     <div class="t_m"></div>
 5     <div class="t_s"></div>
 6 </div>
 7     <script type="text/javascript">
 8         /*倒计时*/
 9         var timeDown = {
10             GetRTime: function (timeId,oldNowTime) {
11                 var tempTime;/*保存上一次时间*/
12                 if(oldNowTime){
13                     tempTime = new Date(oldNowTime.getTime() + 1000);/*如果有上一次时间则赋值*/
14                     /*console.log(tempTime);*/
15                 }
16                 var EndTime = new Date($("#" + timeId).data("end"));/*获取结束时间*/
17                 if (!tempTime) {
18                     if ($("#" + timeId).data("now") == "" || $("#" + timeId).data("now") == "null") {
19                         var NowTime = new Date();
20                     } else {
21                         var NowTime = new Date($("#" + timeId).data("now"));/*取开始时间*/
22                     }
23                 } else {
24                     var NowTime = tempTime;
25                 }
26                 if (EndTime.getTime() >= NowTime.getTime()) {/*判断时间*/
27                     var t = EndTime.getTime() - NowTime.getTime();/*得到结束时间减去开始时间的时间戳*/
28                     var d = Math.floor(t / 1000 / 60 / 60 / 24);/*日*/
29                     var h = Math.floor(t / 1000 / 60 / 60 % 24);/*时*/
30                     var m = Math.floor(t / 1000 / 60 % 60);/*分*/
31                     var s = Math.floor(t / 1000 % 60);/*秒*/
32                     /*将时间填入对应的html中*/
33                     $(".t_d", "#" + timeId).html((d > 9 ? ‘‘ : ‘0‘) + d);
34                     $(".t_h", "#" + timeId).html((h > 9 ? ‘‘ : ‘0‘) + h);
35                     $(".t_m", "#" + timeId).html((m > 9 ? ‘‘ : ‘0‘) + m);
36                     $(".t_s", "#" + timeId).html((s > 9 ? ‘‘ : ‘0‘) + s);
37                     tempTime = new Date(NowTime.getTime() + 1000);/*将开始时间+1秒*/
38                     setTimeout(function () {
39                         timeDown.GetRTime(timeId,NowTime);/*等待一秒后继续执行*/
40                     }, 1000);
41                 } else if (EndTime.getTime() == NowTime.getTime()) {/*当时间相等时要做处理的code*/
42                     $("#"+timeId).hide();
43                 }
44             }
45         }
46         var t=0;
47         if ($(".newTime").size() > 0) {
48             $(".newTime").each(function(){
49                 var timeId="timeOut"+t;
50                 $(this).attr("id",timeId);/*设置多个倒计时时指定唯一id*/
51                 t++;
52                 timeDown.GetRTime(timeId,null);/*开始调用*/
53             });
54         }
55     </script>

jQuery的节点操作

 1 jQuery.parent(expr) /*找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent(".class")*/
 2
 3 jQuery.parents(expr) /*类似于jQuery.parents(expr),但是是查找所有祖先元素,不限于父元素*/
 4
 5 jQuery.children(expr) /*返回所有子节点,这个方法只会返回直接的孩子节点,不会返回所有的子孙节点*/
 6
 7 jQuery.contents() /*返回下面的所有内容,包括节点和文本。这个方法和children()的区别就在于,包括空白文本,也会被作为一个*/
 8
 9 /*
10     jQuery对象返回,children()则只会返回节点
11
12     jQuery.prev(),返回上一个兄弟节点,不是所有的兄弟节点
13
14     jQuery.prevAll(),返回所有之前的兄弟节点
15
16     jQuery.next(),返回下一个兄弟节点,不是所有的兄弟节点
17
18     jQuery.nextAll(),返回所有之后的兄弟节点
19
20     jQuery.siblings(),返回兄弟姐妹节点,不分前后
21
22     jQuery.find(expr),跟jQuery.filter(expr)完全不一样。
23     jQuery.filter()是从初始的jQuery对象集合中筛选出一部分,
24     而jQuery.find()的返回结果,不会有初始集合中的内容,
25     比如$("p"),find("span"),是从<p>元素开始找<span>,等同于$("p span")
26 */

js中if判断语句中的in语法

 1 /*
 2 在js代码中
 3 通常的if判断语句会这样写:
 4 */
 5 if(1 == 1){
 6     alert("1等于1");
 7 }else{
 8     alert("1不等于1");
 9 }
10 /*而在in写法下可以这样:*/
11 if(1 in window){
12     alert("window包含1");
13 }else{
14     alert("window不包含1");
15 }

js的try-catch

 1 try{
 2     foo.bar();
 3 }catch(e){
 4     console.log(e.name + ":" + e.message);
 5 }
 6 try{
 7     throw new Error("Whoops!");
 8 }catch(e){
 9     console.log(e.name + ":" + e.message);
10 }
11 /*
12 改js代码会捕获一个异常错误:
13     因为foo.bar();是未定义的;
14     因此在js代码中如果没有异常捕获,整个页面都不会继续解析.
15     从而导致页面加载失败.
16     这里就需要通过try-catch来异常捕获这种错误,并把他反馈出来
17
18 目前我们可能得到的系统异常主要包含以下6种:
19     EvalError: raised when an error occurs executing code in eval()
20         翻译:当一个错误发生在eval()执行代码
21     RangeError: raised when a numeric variable or parameter is outside of its valid range
22         翻译:当一个数值变量或参数的有效范围之外
23     ReferenceError: raised when de-referencing an invalid reference
24         翻译:引用无效的引用
25     SyntaxError: raised when a syntax error occurs while parsing code in eval()
26         翻译:语法错误,当发生语法错误在eval()解析代码里
27     TypeError: raised when a variable or parameter is not a valid type
28         翻译:错误类型:当一个变量或参数不是一个有效的类型
29     URIError: raised when encodeURI() or decodeURI() are passed invalid parameters
30         翻译:调用encodeURI()或decodeURI()时,传入的参数是不通过无效的
31
32 以下是异常捕获是的属性:
33     Error具有下面一些主要属性:
34         description: 错误描述 (仅IE可用).
35         fileName: 出错的文件名 (仅Mozilla可用).
36         lineNumber: 出错的行数 (仅Mozilla可用).
37         message: 错误信息 (在IE下同description)
38         name: 错误类型.
39         number: 错误代码 (仅IE可用).
40         stack: 像Java中的Stack Trace一样的错误堆栈信息 (仅Mozilla可用).
41 */
42 /*
43     如要判断异常信息的类型,可在catch中进行判断:
44  */
45
46 try {
47     coo.bar();//捕获异常,ReferenceError:引用无效的引用
48 }catch(e){
49     console.log(e instanceof EvalError);
50     console.log(e instanceof RangeError);
51     if(e instanceof EvalError){
52         console.log(e.name + ":" + e.message);
53     }else if(e instanceof RangeError){
54         console.log(e.name + ":" + e.message);
55     }else if(e instanceof ReferenceError){
56         console.log(e.name + ":" + e.message);
57     }
58 } 

js中typeof和instanceof区别

 1 /*先捕获异常,抛出异常*/
 2 try {
 3     throw new myBlur(); // 抛出当前对象
 4 }catch(e){
 5     console.log(typeof(e.a)); //返回function类型
 6     if(e.a instanceof Function){//instanceof用于判断一个变量是否某个对象的实例,true
 7         console.log("是一个function方法");
 8         e.a();//执行这个方法,输出"失去焦点"
 9     }else{
10         console.log("不是一个function方法");
11     }
12 }
13 function myBlur(){
14     this.a = function(){
15         console.log("失去焦点");
16     };
17 }
18
19 /*
20     通畅typeof一般只能返回如下几个结果:
21     number,boolean,string,function,object,undefined;
22     如果要用if做比较则比较后面要用双引号引起来
23 */
24     if(typeof(param) == "object"){
25         alert("该参数等于object类型");
26     }else{
27         alert("该参数不等于object类型");
28     }
29
30 /*又如:*/
31 console.log(Object instanceof Object);//true
32 console.log(Function instanceof Function);//true
33 console.log(Number instanceof Number);//false
34 console.log(String instanceof String);//false
35 console.log(Function instanceof Object);//true
36 console.log(Foo instanceof Function);//true
37 console.log(Foo instanceof Foo);//false

HTML5缓存sessionStorage

 1 sessionStorage.getItem(key)//获取指定key本地存储的值
 2 sessionStorage.setItem(key,value)//将value存储到key字段
 3 sessionStorage.removeItem(key)//删除指定key本地存储的值
 4 sessionStorage.length//sessionStorage的项目数
 5
 6 /*
 7 sessionStorage与localStorage的异同:
 8     sessionStorage和localStorage就一个不同的地方,
 9     sessionStorage数据的存储仅特定于某个会话中,
10     也就是说数据只保持到浏览器关闭,当浏览器关闭后重新打开这个页面时,之前的存储已经被清除。
11     而localStorage是一个持久化的存储,它并不局限于会话
12
13 sessionStorage和localStorage的clear()函数的用于清空同源的本地存储数据:
14     比如localStorage.clear(),它将删除所有同源的本地存储的localStorage数据,
15     而对于SessionStorage,它只清空当前会话存储的数据。
16
17 sessionStorage和localStorage具有相同的方法storage事件:
18     在存储事件的处理函数中是不能取消这个存储动作的。
19     存储事件只是浏览器在数据变化发生之后给你的一个通知。
20     当setItem(),removeItem()或者clear() 方法被调用,
21     并且数据真的发生了改变时,storage事件就会被触发。
22     注意这里的的条件是数据真的发生了变化。也就是说,
23     如果当前的存储区域是空的,你再去调用clear()是不会触发事件的。
24     或者你通过setItem()来设置一个与现有值相同的值,事件也是不会触发的。
25     当存储区域发生改变时就会被触发。
26 */

以上内容仅供参考

编写者:Night 2016-10-20 11:15:01

时间: 2024-10-10 00:12:30

简单分享javascript、jquery实用demo的相关文章

jQuery实用Demo

1.点击 隐藏/显示 元素 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" type="text/css" href="css/demos.css" /> <script src="js/jqu

Java 多线程IO简单实用Demo

多线程主要作用是充分利用Cpu,而不在于它的乱序性.本Demo不讲它竞争什么的.之前看过乱序打印ABC的例子什么的,那些有意义吗? 本Demo 是多线程打印文件夹下的文件,主要实现是用数组存放文件,一个游标遍历. 我们需要考虑在什么时候加互斥访问,本例用synchronized . 先考虑单线程的流程:客户端启动-->读取文件下的文件放到数组(IO)--> 取游标打印 ,游标加1 -- > 改文件写文件(IO) -- 重复上两步至越界 -- 结束 多线程时显然需要在"取游标打印

Javascript jquery css 写的简单进度条控件

很多的时候用户需要等待你“臃肿”的 Javascript 代码处理完成(Web 2.0 的特色).期间或许加入一个类似于进度条的东西让用户有点“安慰”.这个东西实现起来并不复杂,无非就是获得总的处理条目,然后获得一个百分比,再显示输出. 通过我们伟大的 CSS,可以实现非常漂亮的进度条样式.加上 Javascript 的效果,就可以完全“欺骗”我们的用户,让他们有耐心等待浏览器处理完成.上述的原理已经知道了,那么就可以直接看代码了.本人使用的还是 jQuery 框架,因为这样简短的代码可能会更容

JQuery实用技巧--学会你也是大神(1)——插件的制作技巧

  前  言 JRedu 学习之前,首先我们需要知道什么是JQuery? JQuery是一个优秀的javascript框架. JQuery是继Prototype之后又一个优秀的Javascript框架.其宗旨是--WRITE LESS,DO MORE,写更少的代码,做更多的事情.它是轻量级的js库,这是其它的js库所不及的,它兼容CSS3,还兼容各种常用浏览器. JQuery是一个快速的,简洁的JavaScript库,使用户能更方便地处理HTML documents.events.实现动画效果,

js简单显示和隐藏div,触发超链接,动态更改button值,setInterval()简单使用,jquery easyui弹出框简单使用 .

js简单显示和隐藏div 01.<!DOCTYPE html> 02.<html> 03.<head> 04.<meta charset="UTF-8"> 05.<title>Insert title here</title> 06.<script type="text/javascript"> 07. window.onload=function(){ 08. document.g

网友微笑分享原创Jquery实现瀑布流特效

首先非常感谢网友微笑的无私分享,此Jquery特效是一款非常流行和实用的瀑布流布局,核心代码只有几十行,是我见过代码量最少的瀑布流布局,非常适合网友们学习哦,希望大家好好看一下这个Jquery特效的原代码,里面的每个功能注释写得非常详细.. 主要包括了以下几个功能函数:1.瀑布流主函数2.获取高度最小的列的函数3.判断请求数据的开关的函数4.请求数据加载的样式的函数 瀑布流代码如下: JS与CSS代码 /** * 作者:微笑 * QQ:904835003 * 邮箱:[email protecte

分享基于jQuery的时钟特效【qhttl.com】

基于jQuery的时钟特效,时钟特效,主要使用jquery+html5完成特效,具体解析详解Demo 下载地址:基于jQuery的时钟特效 预览Demo:http://www.qhttl.com/content/view/2014/07/17/jiaoben61/jiaoben61/index.html 先上图: 分享基于jQuery的时钟特效[qhttl.com],布布扣,bubuko.com

动态加载页面数据的小工具 javascript + jQuery (持续更新)

使用该控件,可以根据url,参数,加载html记录模板(包含json参数对应,以及具体记录位置Index根据参数描述加载对应的属性,并可以根据简单的判断分支加载对应html或者控件)至列表容器内(JQuery选择器字符串)注: 该控件在使用前需引入JQuery框架支持,使用该控件,可极大的减少Ajax列表数据动态加载开发工作的实际工作量. 使用方式: 首先,添加控件引用,并加入Jquery支持 <script src="js/jquery.js"></script&g

分享一个jquery功能强大的提示信息插件代码

代码属于提示文字特效,很好,使用有些复杂,请参demo使用 下载地址:jquery功能强大的提示信息插件代码 预览DEMO:DEMO 分享一个jquery功能强大的提示信息插件代码,布布扣,bubuko.com