`
xiao_2012_wei
  • 浏览: 30445 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

jQuery.each和setTimeout方法小体会

阅读更多

jquery在遍历选定的对象时候用each比较方便。有时满足了某种条件之后,要跳出这个循环。

我们都知道跳出循环一般用break;终止本次循环计入下一个循环用continue.

不巧遇到这个问题,each遍历时下意识 的用了break,想跳出这个循环。结果报错

SyntaxError: unlabeled break must be inside loop or switch

 

 

 

 

在each遍历时,return false就相当于break,

return true相当于continue。

 

如果想和java中一样的感觉,那就只有这样了。(特别注意,for循环里面就不要return了哦)


 

 为了更彻底了解此场景,可以查看JQ源码,each方法其实是这样滴:

 for (name in object) {     
                if (callback.apply(object[name], args) === false) {                     
                    //如果在callback回调函数中使用return false;则不执行下一次循环   
                    break;   
                }   
            }   

 这下就大彻大悟了!

 

另外在处理购物车编辑功能时,用户触发更新购物车操作,既希望浏览器能快速响应用户的请求,又避免对服务器额外的压力,减少重复刷新请求操作。

 

setTimeout肯定是要派上用场的。之前的写法 :

         setTimeout(function(){

                            console.log(“刷新购物车”);

},1500)

每一个请求过来,都只是一个延时动作,事实上每一次请求还是都执行了刷新购物车请求。

 

查询网上资料,又有意外收获:

         setTimeout() 方法的返回值 (数值),用这个数值来唯一确定结束哪一个 setTimeout() 方法

 

杀死之前正在等待的方法,这样就能减少请求了。利用setTimeout()的返回值。

 

      Var update=null;  //一定要定义全局变量,避免第二次初始化了

 

if(updateT){

                  clearTimeout(updateT);

              }

              updateT = setTimeout(function(){

                  console.log(“刷新购物车”);

 

              },500);

 

果然解决问题!

  • 大小: 3.4 KB
  • 大小: 4.5 KB
  • 大小: 4 KB
0
0
分享到:
评论

相关推荐

    图形jquery.gvChart-1.0.1.min.js

    setTimeout(function () { // Fix for IE : Allow it to render the iframe frameWindow.focus(); try { // Fix for IE11 - printng the whole page instead of the iframe content if (!frameWindow.document...

    jquery需要的所有js文件

    jquery需要的所有js文件 /*! * jQuery UI 1.8.18 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * ...

    jquery插件jquery倒计时插件分享

    代码如下:$(document).ready(function () { /* 延迟函数 */ jQuery.fn.delay = function (time, func) { return this.each(function () { setTimeout(func, time); }); }; jQuery.fn.countDown = function ...

    async-each:jQuery的简单异步迭代插件

    准系统jQuery插件,在短暂的setTimeout之后,将迭代集合中的每个项目。 这使您可以遍历非常大的数据集或在.asyncEach调用中进行繁重的处理,而无需冻结浏览器或获取无响应的脚本错误。 如何使用 只需使用.asyncEach...

    JQuery 两种方法解决刚创建的元素遍历不到的问题

    刚创建的元素,使用jQuery的each方法来遍历,有时候会不起作用。 原因不用多说,经常使用javascript的人应该都会知道,解决方案大致有2种: 1、刚创建完元素的时候,就立刻使用each方法 复制代码 代码如下: $(‘#btn...

    jquery例子

    timeOutId=setTimeout(function(){ $.post("autoCompleteServlet",{word:wordText},function(data){ //把数据转换成jquery对象 var jqueryDom=$(data); //取所有的word节点 ...

    jQuery CSS3弹跳球碰撞动画特效.zip

    代码片段: setInterval(function () {  var floatTypes = Array('floatOne','floatTwo','floatThree','floatFour','floatFive');... setTimeout(function() {$(div).remove();},800);  }); },20);

    jQuery选中select控件 无法设置selected的解决方法

    解决办法:把选中option的语句放到setTimeout中,例: 代码如下: setTimeout(function() { var selSorts = $(“select[id^='” + controls.selsort + “‘]”); $.each(selSorts, function(index, sort) { var ope =...

    图库新版jQuery焦点图 JS代码

    tips[25] = '个人行为与小规模配合压根不需要流程与规范,当交付结果需要大规模的应用时,同一的规格就显得非常重要了。'; tips[26] = '任何创作活动都是为了满足一定的需求,创新是执行过程中的副产品;为了创新而...

    jQuery手机端触屏滑动刻度尺选择数值代码

    setTimeout(function(){ var n =0; var u,end,start,g,g2; var w0 = 50; var w1 = 10.4; var w2=52; var heightVal =$("div[data-page='profile1']").find(".row").eq(1).find(".number").attr("initial...

    jQuery 仿必应的首页效果

    <script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> *{margin:0;padding:0;list-style:none} body{background:#B2BDC4; font-size:12px} .mbox{margin...

    jquery tab标签页的制作

    这里有一个内容要特别注意的那就是给标签的mouseover事件设置延迟,这样防止用户恶意的移动鼠标导致放送大量的请求而是服务器崩溃,用到setTimeout函数,主要用到已下的事件 1 $().each(function(){}) 这个是个非常...

    jqzoom放大镜插件.zip

    return this.each(function() { var a = $(this); var aTitle = a.attr('title'); //variabile per memorizzare il titolo href $(a).removeAttr('title'); $(a).css('outline-style','none'); var img = $...

    jquery 防止表单重复提交代码

    我的解决办法如下(只针对客户端): 用户点击提交按钮后给按钮添加disabled属性 代码如下:$(“input:submit”).each(function() { var srcclick = $(this).attr(“onclick”); if(typeof(srcclick)==”function”){...

    jQuery开发技巧

    25大实用的jQuery技巧和解决方案 1 去除页面的右键菜单 $ document ready function { $ document bind "contextmenu" function e { return false; } ; } ; 2 搜索输入框文字的消失 当鼠标获得焦点 ...

    防google自动补齐

    timeoutId = setTimeout(function(){ $.post("/wght/wght/bargain/searchIndex.do?word="+wordText,function(data){ //将dom对象data转换为jquery数据 var jqueryObj = $(data); //...

Global site tag (gtag.js) - Google Analytics