jquery调用接口 setInterval() 方法 重复调用时 会出现问题 越来越快 清除也没用

当前位置:&&
本页文章导读:
&&&&?使用JQuery和s3captche实现一个水果名字的验证&&&&&&
先看个图片:
s3captcha是一个非常有用的可以让图片顺序显示的一个JQuery插件。它是通过php实现的。但是我发现很容易把它转化为asp.net和C#的代码。 我做了一个config的配置文件可以......&&&&?JS 添加删除元素的实现代码&&&&&&
JS添加删除元素
Hello World!
我可以被删除!
在我上下添加一个元素吧!
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
搜狐......&&&&?javascript 不停(setInterval)/延时(setTimeout)函数使用实例&&&&&&
setTimeout(script,millisecond); 是从现在算起多少微秒后运行该代码(只运行一次) setInterval(script,millisecond); 是每隔多少微秒运行一次代码 示例: 1.执行一次
[Ctrl+A 全选 注:如需引入外部Js......
&&&&&&最新IT科技资讯推荐:
[1]使用JQuery和s3captche实现一个水果名字的验证
&&&&来源:&互联网& 发布时间:&
先看个图片:
s3captcha是一个非常有用的可以让图片顺序显示的一个JQuery插件。它是通过php实现的。但是我发现很容易把它转化为asp.net和C#的代码。 我做了一个config的配置文件可以在文件中配置图片的源和名字等。
然后介绍一下s3captcha的实现原理,
上图所示是它的实现模式。 1.它随即生成图片的 2.把一系列随机数据赋给图片的index. 3.可以从图片列表中选择一个随机的index. 4.让图片随机的显示为一个radio box. 它使用JQuery实现的radio box到图片List的转换。 2.代码: 首先是把图片的index数组顺序打乱,重新输出:
代码如下:public static List&int& shuffle(List&int& input) { List&int& output = new List&int&(); Random rnd = new Random(); int FI while (input.Count & 0) { FIndex = rnd.Next(0, input.Count); output.Add(input[FIndex]); input.RemoveAt(FIndex); } input.Clear(); input = rnd =
}使用xml来作为s3captche的配置文件: 代码如下:&?xml version="1.0" encoding="utf-8" ?& &s3capcha& &icons& &name&apple,cherry,lemon,pear,strawberry&/name& &title&Apple,Cherry,Lemon,Pear,Strawberry&/title& &width&33&/width& &height&33&/height& &ext&jpg&/ext& &folder&fruit&/folder& &/icons& &message&Verify that you are a human not robot, please choose {0}&/message& &/s3capcha&GetHtmlCode的代码:
代码如下:public static string GetHtmlCodes(string PathTo, out int SessionValue) { bool HasValue = if (string.IsNullOrEmpty(Message)) HasValue = LoadConfig(); else HasValue = if (HasValue) { Random Rnd = new Random(); int RandomIndex = Rnd.Next(0,IconNames.Length); List&int& values = new List&int&(); for(int i = 0; i & IconNames.Li++) values.Add(i); values = shuffle(values); string WriteThis = "&div s3capcha\"&&p&" + string.Format(Message, "&strong&" + IconTitles[values[RandomIndex]] + "&/strong&") + "&/p&"; int[] RandomValues = new int[IconNames.Length]; for (int i = 0; i & IconNames.L i++) { RandomValues[i] = Rnd.Next(); WriteThis += string.Format(RowTemplate, IconTitles[values[i]], RandomValues[i], PathTo + "/icons/" + Folder + "/" + IconNames[values[i]] + "." + Extention, Width, Height); } WriteThis += "&div
"clear:left\"&&/div&&/div&"; SessionValue = RandomValues[RandomIndex]; return WriteT } else { SessionValue = -1; return "Invalid data, config file not found"; } }3.使用ajax方法来实现验证信息的判断弹出框: s3capcha.ashx 用来实现当向服务器请求时,返回html:
代码如下:public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/html"; int US context.Response.Write(s3capcha.GetHtmlCodes("../../s3capcha", out USession)); context.Session[s3capcha.s3name] = US context.Response.End(); }verify.ashx文件·来实现验证功能:
代码如下:public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; if (s3capcha.Verify(context.Session[s3capcha.s3name], context.Request.Form[s3capcha.s3name])) context.Response.Write("Success"); else context.Response.Write("Fail"); context.Response.End(); }JQuery实现的ajax代码: 代码如下://Javascript codes $(document).ready(function() { getCapcha(); $("form").bind('submit', function() { $.ajax({ url: 'verify.ashx', type: 'POST', data: { 's3capcha': $("input[name=s3capcha]:checked").val() }, cache: false, success: function(data) { alert(data); getCapcha(); } });
[2]JS 添加删除元素的实现代码
&&&&来源:&互联网& 发布时间:&
JS添加删除元素
Hello World!
我可以被删除!
在我上下添加一个元素吧!
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
Tags:JS 添加删除
复制链接收藏本文打印本文关闭本文返回首页
上一篇:javascript 不停(setInterval)/延时(setTimeout)函数使用实例下一篇:javascript阻止浏览器后退事件防止误操作清空表单
javascript showModalDialog,open取得父窗口的方JavaScript–Apple设备检测示例代码js性能优化 如何更快速加载你的JavaScript页面用javascript实现源代码的隐藏与解密的方法70+漂亮且极具亲和力的导航菜单设计国外网站推荐JavaScript类库D各浏览器对click方法的支持差异小结js 获取radio按钮值的实例
[3]javascript 不停(setInterval)/延时(setTimeout)函数使用实例
&&&&来源:&互联网& 发布时间:&
setTimeout(script,millisecond); 是从现在算起多少微秒后运行该代码(只运行一次) setInterval(script,millisecond); 是每隔多少微秒运行一次代码 示例: 1.执行一次
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 2.复制执行
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] setTimeout也可以做成重复执行
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
最新技术文章:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
(C)2012-,站长邮箱:www_169it_(请将#改为@)jquery图片滚动 带左右按钮和当前页 自动滚动的 现在滚动有问题 会越来越快 求指导 下面是代码_百度知道
jquery图片滚动 带左右按钮和当前页 自动滚动的 现在滚动有问题 会越来越快 求指导 下面是代码
$(function(){
var page=1;//版面
var i=3;//每个版面初始有三个
var delaytime=2000;
var $parent=$('.v_show');//获取父元素
var $v_show=$parent.find(&.v_content_list&);//找到视频展示区域
var $v_content=$parent.find(&.v_content&);//找到视频展示区域外围的div
var $v_width=$v_content.width();
var len=$v_show.find(&li&).
var $num=$('.v_ico_list & li');
var pageCount=Math.ceil(len/i);
$('.v_r').click(function(){
if(!$v_show.is(&:animated&)){
if(page==pageCount){
$v_show.animate({left:&0px&},delaytime);
$v_show.animate({left:'-='+$v_width},delaytime);
$parent.find(&.v_ico_list & li&).eq(page-1).addClass(&current&).siblings().removeClass(&current&);
$('.v_l').click(function(){
if(!$v_show.is(&:animated&)){
if(page==1){
$v_show.animate({left:'-='+$v_width*(pageCount-1)},delaytime);
page=pageC
$v_show.animate({left:'+='+$v_width},delaytime);
$parent.find(&.v_ico_list & li&).eq(page-1).addClass(&current&).siblings().removeClass(&current&);
$num.click(function(){
if(!$v_show.is(&:animated&)){
var $index=$num.index(this);
$v_show.animate({left:'-'+$v_width*$index},delaytime);
page=$index+1;
$(this).addClass(&current&).siblings().removeClass(&current&);
picTimer=function(){
$('.v_r').trigger(&click&);
setInterval(picTimer,8000);
$v_content.hover(
function(){
clearInterval(picTimer);
function(){
setInterval(picTimer,8000);
提问者采纳
不是 这样清除clearInterval(picTimer);而是 var myInterval = setInterval(picTimer,8000);
clearInterval(myInterval );这样来清除
现在我改成这样了但是鼠标移出的时候不会自动了 那这个地方应该怎样写 function(){
}(注:可以加下你QQ吗 我:)
提问者评价
其他类似问题
jquery的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁JQuery setInterval() 方法 重复调用时 会出现问题 越来越快 清除也没用_百度知道
JQuery setInterval() 方法 重复调用时 会出现问题 越来越快 清除也没用
再次触发该事件的时候又注册了 setInterval一般出现这种情况都是因为重复注册了 setInterval。建议在 setInterval 代码的前面先清除一次,比如在某个事件的相应函数中创建setInterval
建议直接在 ppt 方法的前面加上:clearInterval(set); 即function&ppt(){&&&&clearInterval(set);&&&&......}这样不管你哪一次设置 setInterval 都会先清除一下。问题的原因嘛,可能是因为 window.resize 事件的特殊性。其他事件只触发一次,像键盘 keydown mousedown 之类的,只要按键或鼠标不抬起隔段时间就触发一次。而 window.resize ,会在改变的过程中,连续触发多次。在多次的触发中,你的 setTimeout(clear,1) 马上就执行了,setTimeout(set,20) 要 20 毫秒后才进行,在这间隔的19毫秒中,又触发了多少次 resize 事件不得而知,效果就是:多次注册了 setInterval,同时多次进行了无效的 clearInterval (因为清除发生在注册前,1毫秒后就执行了)。。。。。。。有点墨迹了。。。。。
你的思路我很赞同,但是clearInterval(set); 之后 出现这种情况何解
在最外面加上 var set 即可。我以为你在全局域中已经声明了它呢。未声明的标识符,如果尝试获取它的值,会报错;如果尝试赋给他值,不会报错,但会为全局对象 window 添加相同名称的属性。
其他类似问题
按默认排序
其他1条回答
清除不会没有用,只是你自己用的不对你的代码要贴出来
能帮我看下吗&&我发你&邮&或者&扣
setinterval的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 jquery 的文章

 

随机推荐