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的相关函数。这样就形成了头疼的一次点击两次触发。这本来就一个...
如何在一个页面上让多个jQuery共存呢?比如jquery-1.5和jquery-1.11。 你可能会问,为什么需要在一个页面上让多个jQuery共存?直接引用最新版本的jQuery不行吗? 答案是,不行。因为现实生活是非常残酷的。举个栗子: 现有网站已经引用了jQuery 1.5以及相关插件。如果直接将jQuery升级到最新版,这些插件就不工作了,除非你能把这些插件全部升级,或者等各个插件的作者发布支持最新版jQuery的版本。 现在,如果我们要基于jQuery开发...
实现功能: 1.修改标题样式。把jquery ui的标题样式放上去。支持换肤。 2.修改按钮样式,换成jqueryui的button按钮样式。 3.将模式化窗口的背景换成了jqueryui的模式化背景。 代码://首先要引入jquery,以及ui的包和皮肤的样式如:(function($) {$.alerts = {// These properties can be read/written by accessing $.alerts.propertyName from your scripts at any timeverticalOffset: -75, // vertical offset of the dialog f...
产生跨域问题的原因 跨域问题是浏览器同源策略限制,当前域名的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...
在我们的程序开发中经常会要用到CheckBox的全选,通常情况下是在一些数据绑定控件中如Gridview等 下面以Repeater为例,在Repeater的header 和item中放入CheckBox控件 。" onclick="checkAll('chkAll',this);" /> 下面就是js脚本了 checkAll方法是实现CheckBox的全选和取消全选的。function checkAll(chkAllID, thisObj) {var chkAll = document.getElementById(chkAllID);var chks = document.getElementsByTagName("input");v...
placeholder是html5的一个属性,它提供可描述输入字段预期值的提示信息(hint), 该提示会在输入字段为空时显示。高端浏览器支持此属性(ie10/11在获得焦点时文字消失),ie6/7/8/9则不支持。为了兼容各主流浏览器并使其呈现效果保持一致,以下三套方案仅供参考。 方案一: 摒弃原始属性placeholder,为input添加一个兄弟节点span,并为span设置绝对定位(父节点为position: relative;),使其位于input之上。html代码片段如下:手...
近期在项目中遇到这样一问题,关于jsonp跨域问题,get传值是可以的,但post传值死活不行啊,于是网上看了一大堆关于这方面的资料,最终问题得以解决,今天抽空与大家分享下。 说明: http://www.t1.com/index.php 服务端URL 当然这是我本地配置的,需要改为自己对应的地址。 客户端代码:$(function(){var url = 'http://www.t1.com/index.php';$.ajax({type: 'post',url: url,data: {name:'wangyulu'},dataType: ...
我想实现的目标:当鼠标进入黑色框时,橙色框执行淡入动画;当黑色框范围移动的时候(即使经过粉色框,动画仍然不被触发);当鼠标移出的时候,橙色方块消失。 遇到的问题阐述:当鼠标移入黑色框的时候,橙色框执行淡入动画,但是当鼠标从黑色框经过粉色框的时候,橙色框就消失了,然后又执行一遍淡入动画。当鼠标从粉色框移出到黑色框的时候,橙色框的淡入动画又被执行。这不是我想要的。 初期代码: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(){ ...