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);
果然解决问题!
相关推荐
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 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 * ...
代码如下:$(document).ready(function () { /* 延迟函数 */ jQuery.fn.delay = function (time, func) { return this.each(function () { setTimeout(func, time); }); }; jQuery.fn.countDown = function ...
准系统jQuery插件,在短暂的setTimeout之后,将迭代集合中的每个项目。 这使您可以遍历非常大的数据集或在.asyncEach调用中进行繁重的处理,而无需冻结浏览器或获取无响应的脚本错误。 如何使用 只需使用.asyncEach...
刚创建的元素,使用jQuery的each方法来遍历,有时候会不起作用。 原因不用多说,经常使用javascript的人应该都会知道,解决方案大致有2种: 1、刚创建完元素的时候,就立刻使用each方法 复制代码 代码如下: $(‘#btn...
timeOutId=setTimeout(function(){ $.post("autoCompleteServlet",{word:wordText},function(data){ //把数据转换成jquery对象 var jqueryDom=$(data); //取所有的word节点 ...
代码片段: setInterval(function () { var floatTypes = Array('floatOne','floatTwo','floatThree','floatFour','floatFive');... setTimeout(function() {$(div).remove();},800); }); },20);
解决办法:把选中option的语句放到setTimeout中,例: 代码如下: setTimeout(function() { var selSorts = $(“select[id^='” + controls.selsort + “‘]”); $.each(selSorts, function(index, sort) { var ope =...
tips[25] = '个人行为与小规模配合压根不需要流程与规范,当交付结果需要大规模的应用时,同一的规格就显得非常重要了。'; tips[26] = '任何创作活动都是为了满足一定的需求,创新是执行过程中的副产品;为了创新而...
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...
<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...
这里有一个内容要特别注意的那就是给标签的mouseover事件设置延迟,这样防止用户恶意的移动鼠标导致放送大量的请求而是服务器崩溃,用到setTimeout函数,主要用到已下的事件 1 $().each(function(){}) 这个是个非常...
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 = $...
我的解决办法如下(只针对客户端): 用户点击提交按钮后给按钮添加disabled属性 代码如下:$(“input:submit”).each(function() { var srcclick = $(this).attr(“onclick”); if(typeof(srcclick)==”function”){...
25大实用的jQuery技巧和解决方案 1 去除页面的右键菜单 $ document ready function { $ document bind "contextmenu" function e { return false; } ; } ; 2 搜索输入框文字的消失 当鼠标获得焦点 ...
timeoutId = setTimeout(function(){ $.post("/wght/wght/bargain/searchIndex.do?word="+wordText,function(data){ //将dom对象data转换为jquery数据 var jqueryObj = $(data); //...