如下,alert无限循环下去 代码如下:<!DOCTYPE htmlt> <html> <head> <meta charset="utf-8"> </head> <body onclick="alert(3)"> <p>Safari alert Bug</p> </body> </html> 猜测Safari5中将点击alert框的确定按钮也当成点击body了。事件一直冒泡到弹出框上。
从需求上来说,这个功能需要实时调用最新的微博数据,单就前端开发来说,其需求可以拆分如下: 1 内容持续滚动; 2 新微博将下面的微博先推下去,然后淡入进来; 3 鼠标经过内容暂停滚动; 4 容器底部渐变消失在背景色下。 上述4个需求之中,需求1-3为js技术实现,需求4为css技术实现,下面逐个需求来讲。 需求1和需求2:内容持续滚动的需求有些类似前一篇文章《小模块:公告滚动并暂停》中介绍的功能,在那篇文章中,此功能使用cs...
假设要生成一千万个随机数,常规的做法如下: 代码如下:var numbers = []; for (var i = 0; i < 10000000; i++) { numbers.push(Math.random()); } 然而,在IE下执行这段代码时,却弹出了一个窗口提示用户是否停止这段脚本。出现这种情况,首先想到的是优化循环体。但明显地,循环体很简单,没什么优化的余地。即使把循环体清空,提示仍然存在。于是,我得出了一个结论:在IE下,一旦循环次数超过了某个特定值,就会弹出停止...
废话少说,看代码 代码如下:var map = { 地名: ["北京","天津","上海"], 民族: ["汉族","藏族","维吾尔族"] }; $.each(map,function(key,values){ console.log(key); $(values).each(function(){ console.log("\t" + this); }); }); 如果安装了firebug,控制台输出如下树状结构: 地名 北京 天津 上海 民族 汉族 藏族 维吾尔族 注意:jquery中的$().each和$.each的区别,前者只能遍历数组,后者可以遍历...
一、效果图:tips源码下载 http://xiazai.jb51.net/201103/yuanma/jquerynewslist.rar二、jquery源码: 代码如下:(function($){ $.fn.extend({ newsList:function(options){ var defaults ={ actName:li, //显示条数名; maxShowNum:6, //最多的显示条数; actNameH:28, //一次移动的距离; ulClass:.ul_news_list, //被复制层的class copyUlClass:.ul_news_list2, //复制层的class autoTime:1500, //自动运行时间; clickGoUpC:.g...
html代码: 代码如下:<table id="repTable"……> …… <span id="<%# Eval("Id") %>" class="address"></span> </table> jquery代码: 代码如下:$(document).ready(function(){ $("#repTable span.address").each(function(){ var spanTemp = $(this); $.ajax({ type: "get", url: "SceneryAjaxCall.aspx", data: "sid="+$(this).attr("id"), cache: true, dataType: "html", success: function(msg){ spanTemp.append(msg); } ...
众所周知,不带参数的绑定非常简单,只要使用(语法:“document.getElementById("对象ID名").attachEvent("事件名,如onchange",函数名);”)(示例:“document.getElementById("select_0").attachEvent("onchange",modifyFunction);”)即可。(注:以下只写示例) 带参数的绑定就要复杂一些:document.getElementById("select _0").attachEvent("onchange",function(){modifyFunction (obj,i););即在function()中写需要执行的函...
上一次的错误太多,排版也出现了问题,重写了一遍,希望大家支持. 循环遍历一个元素是开发中最常见的需求之一,那么让我们来看一个由框架BASE2和Jquery的结合版本吧. var forEach = (function(){//数组与伪数组的遍历var _Array_forEach = function (array, block, context) { if (array == null) return; //对String进行特殊处理if(typeof array == string){array = array.split();}var i = 0,length = array.length; for (;i < l...
今天遇到了这个问题: 代码如下://伪代码 for (var i=0; i<n; i++) { addEvent(obj[i], "click", func(i)); } 结果出现了问题,所有的dom都被注册了 i=n 的时候的事件,查了一些资料,说是在循环过程过this被改变,注册过的事件也被随之改变,找到了一种解决方法; 代码如下:for (var i=0; i<n; i++) { (function (i){addEvent(obj[i], "click", function (){func(i);});})(i); } 利用必包保持对变量的持久引用,很强大的说! (...
服务端后台返回到客户端的JSON格式字符串: var str = '[{"uname":"王强","day":"2010/06/17"},{"uname":"王海云","day":"2010/06/11"}]'; 我们把它转换成JSON对象:var jsonList=eval("("+str+")");这时候如果以用断点跟踪查看这个jsonList对象,其实你会发现,他的长度为2,即jsonList.length=2。它的每一项都是一个单独的JSON对象。请看下图: 这时候假设我们不知道"uname"和"day"这两个key值,我们开始对jsonList执行循环操...
譬如下面。 代码如下:for(i=0;i<10;i++){//就不写成: var i=0 alert(i); } 但是,这真的不是个好习惯,下面我就说说为什么写Js的for循环一定要加var,否则会时不时给你带来烦人难查的bug。 譬如现在我们要实现这样的功能:输出 10 20 30 40 50 60 70 80 90 100 通过下面code实现,WriteNumber从1到10循环,每次循环调用TenTimes方法返回10倍的索引值。 代码如...
Document自带的方法: 循环执行:var timeid = window.setInterval(“方法名或方法”,“延时”);window.clearInterval(timeid); 定时执行:var tmid = window.setTimeout(“方法名或方法”, “延时”);window.clearTimeout(tmid); 举例说明: A.当要执行的方法中不需要参数时 代码如下:<script type=”text/javascript”> //循环执行,每隔3秒钟执行一次showalert() window.setInterval(showalert, 3000); function showaler...
然后来看看今天我开始怀疑哪个权威哦家伙了。。。 自从开始学编程,自从接触到数组这个东西,我就一直在不同的地点和不同的时间不断看到有人提醒:在用for遍历数组的时候一定要用 for(var i=0,n=arr2.length;i<n;i++)的方式哦,而不要用for(var i=0;i>arr.length;i++)的方式哦,因为用脑子想想也知道,第二种方法的第二部分会一直去计算数组的length,所以自然效率比较低。 哦?我们这里不说其他程序语言,而只讨论js,因为不同的语...
代码如下:<script> var speed=20;/*速度数值越大速度越慢*/ document.getElementById('www_qpsh_com2').innerHTML=document.getElementById('www_qpsh_com1').innerHTML; /*两个层来回交替出现*/ function Marquee(){ if(document.getElementById('www_qpsh_com2').offsetWidth-document.getElementById('www_qpsh_com').scrollLeft<=0) document.getElementById('www_qpsh_com').scrollLeft-=document.getElementById('www_qpsh_c...
一般在javascript里对数组进行遍历一般是使用for循环,像下面一样 代码如下:var arr = []; for(var i=0; i<arr.length; i++){ //loop } 这种代码最大的问题,就在于每次循环时都要通过 .操作符获取 .length,增加了开销。那么我们可以这样改进。 代码如下:var arr = []; for(var i=0, n=arr.length; i<n; i++){ //loop } 这样子,先把 arr.length暂存到 n 变量中去。只在开始时获取一次。 但是这样就没问题了吗?貌似多定义了个...