在做项目的时候遇到个jQuery checkbok复选框的选中取消的BUG,咨询了大神,才闹明白怎么回事,这里记录下来,分析给大家。 先上代码:代码如下:代码如下:$("#CheckedAll").click(function () {if ($(this).is(":checked")) {$("[name=items]:checkbox").attr("checked", true);} else {$("[name=items]:checkbox").attr("checked", false);}});第一次执行,没问题,但第二次执行就有问题了,选择不了 解决办法:把attr()换成prop()...
这种情况精简后查错的方法:打开IE的脚本错误提示,然后打开调用JS的HTML页面,它会报告缺少分号的所在位置,然后用UE打开精简后JS文件,转到相应位置加上分号,再找到未精简的JS代码中对应的位置加上分号。 例如:代码如下: var a=1 var b=2改为:代码如下: var a=1; var b=2;◆尽量在else后面的语句使用大括号 这种情况查错起来比较麻烦,通过正则表达式 else[a-zA-Z0-9]+ 来查找精简后的JS文件,或者查找else后面是否有注释的行...
最近项目中出现上传文件返回的json数据会被提示下载,只有在ie10+中才会出现这个问题。前端使用jQuery的插件ajaxForm提交表单,后台返回的数据格式为json。代码如下:后端Python:代码如下: def jsonp(func):"""Wraps JSONified output for JSONP requests."""@wraps(func)def decorated_function(*args, **kwargs):callback = request.args.get(callback, False)temp_content = func(*args, **kwargs)if isinstance(temp_content...
Javascript 引擎的单线程特性使得在处理一个较大的循环遍历时会长时间独占线程,导致其它事件(例如用户操作)无法及时响应,严重时造成卡顿甚至是假死现象。为解决上述问题,一种可行机制是将大的循环拆分成若干小的循环片段分片执行,使得Javascript 引擎有时机在各段之间插入执行其它事情,从而有效改善性能体验 Ansync.js代码如下: function Ansync (totalCount, segmentCount, workCallback, returnCallback) {var num_of_ite...
问题:开发过程中,用到循环往table里面插入tr标签,然后tr里又循环插入td,在其它浏览器都没问题,但是在IE9及以下版本中都报错:google上得到答案:由于我之前不知道错误的原因,在百度找不到解决方法,后来用谷歌搜到了,外国有人也遇到过这个问题,并指出了问题的所在:http://www.aachin.info/techen/error-on-ie-9-script600-invalid-target-element-for-this-operation/?amp;utm_source=rss&utm_medium=rss&utm_campaign=er...
我们先来看看这个bug 是怎么产生的。代码如下: #div1 {width: 200px;height: 200px;background: red;}代码如下:以下是用来测试的Javascript代码 ,目的是 让div慢慢变窄。代码如下: setInterval(function(){var oDiv=document.getElementById("div1");oDiv.style.width=oDiv.offsetWidth-1+'px';},30);Javascript 代码 很简单,运行一下 没有任何问题,如愿的div在慢慢变小。 那这个offset 的bug又是怎么来的呢? 下面我们动动样式...
这几天看了Amy老师的用javascript实现瀑布流,我跟着把代码敲出来。发现这样写只能第一次载入时适应屏幕,以后改变窗口大小就不能做到自适应了。于是我想到了用window.onresize来使得瀑布流函数从新加载来达到目的,代码如下: window.onload=function(){//瀑布流函数waterfall(content,box);//模拟数据加载var dataInt = {"data":[{"src":"01.jpg"},{"src":"02.jpg"},{"src":"03.jpg"},{"src":"04.jpg"},{"src":"05.jpg"},{"src":"...
之前也看了很多朋友的文章里有讲这个问题。比如使用一个变量记录执行的间隔时间什么的。感觉每次都要去撸一下,比较累人。本人喜欢搬砖前先选工具。其实解决这个方法很简单。iScroll呢其实是截获了点击浏览器时的touchstart和touchend事件。在touchend的时候使用js去触发元素的onclick事件(_end这个函数)。而在实际操作中,先执行了touchend,然后再执行了一次onclick的相关函数。这样就形成了头疼的一次点击两次触发。这本来就一个...
产生跨域问题的原因 跨域问题是浏览器同源策略限制,当前域名的js只能读取同域下的窗口属性。 跨域问题产生的场景 当要在在页面中使用js获取其他网站的数据时,就会产生跨域问题,比如在网站中使用ajax请求其他网站的天气、快递或者其他数据接口时以及hybrid app中请求数据,浏览器就会提示以下错误。这种场景下就要解决js的跨域问题。 XMLHttpRequest cannot load http://你请求的域名. No Access-Control-Allow-Origin header is...
最近看到Q群里有人说chrome(谷歌浏览器)不支持form.submit方法,求解决办法。闲的时候亲自测试了一番,发现chrome竟然真的不支持form.submit,测试的时候用的是Jquery的,也不支持,于是乎研究了半天,终于找到了一个解决办法。//获取form表单的id var form=$('#myform').val(); //获取浏览器参数 var browserName=navigator.userAgent.toLowerCase(); if(/chrome/i.test(browserName)&&/webkit/i.test(browserName)&&/mozil...
今天在写一个js延时事件的时候发现在setTimeout这个方法里面使用jquery的$(this)竟然不起作用,各种测试,最后得出结论是setTimeout内不支持jquery的选择器。于是请教了一下QQ上做jquery开发的高手,马上就把这问题解决了,在这里记录一下。 下面是作者做延时处理时的js代码:$('.dl_select dt').hover( function(){ clearTimeout(t3); $(this).siblings('dd').css({'display':'block','cursor':'pointer'}); }, function(){ t2=se...
我想实现的目标:当鼠标进入黑色框时,橙色框执行淡入动画;当黑色框范围移动的时候(即使经过粉色框,动画仍然不被触发);当鼠标移出的时候,橙色方块消失。 遇到的问题阐述:当鼠标移入黑色框的时候,橙色框执行淡入动画,但是当鼠标从黑色框经过粉色框的时候,橙色框就消失了,然后又执行一遍淡入动画。当鼠标从粉色框移出到黑色框的时候,橙色框的淡入动画又被执行。这不是我想要的。 初期代码:mouseover mouseout.parent{wi...
用jquery添加新元素很容易,面对jquery append 动态添加的元素事件on 不起作用我们该如何解决呢?on方法中要先找到原选择器(如例.info),再找到动态添加的选择器(如列.delete)。 具体不多说了,请看下面的代码吧。测试$(function(){ //动态添加 $(".add").on("click",function(){ console.log("进来了"); $(".info").append('单击我来删除我'); });//对动态添加的元素添加事件-删除 $(".info").on("click",".delete",function(){ ...
通过XMLHTTPRquest请求不同域上的数据,原来js跨域访问是后台有个处理路径“/test”的函数。下面把具体解决方案介绍如下。 后台处理路径“/test”的函数:代码如下: //路径处理 app.get("/test",user.test); //处理函数 exports.test=function(req,res){res.end("alert(JS跨域访问)"); };外部有一个网页需要访问路径”/test“下的内容,则可以通过JS脚本文件来跨域访问:代码如下: //处理函数 function method(data){console.log(d...
代码需求, 使用attr只能执行一次,使用prop则完美实现全选和反选,获取所有选中的项并把选中项的文本组成一个字符串。解决方案一: 代码如下:1234全选/取消全选 $("#chk_all").click(function(){// 使用attr只能执行一次$("input[name='chk_list[]']").attr("checked", $(this).attr("checked")); // 使用prop则完美实现全选和反选$("input[name='chk_list[]']").prop("checked", $(this).prop("checked"));// 获取所有选中的项并...