重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、jQuery的load()事件处理的BUG,当图片是从浏览器缓存取得时,获取的是错误的尺寸。
我们提供的服务有:成都网站制作、网站建设、微信公众号开发、网站优化、网站认证、大石桥ssl等。为成百上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的大石桥网站制作公司
2、错误的代码是:
(错误) 在添加了HTML之后立即调用代码获取尺寸
3、(错误) 用jQuery的load()事件处理
4、经实际测试,使用jQuery 1.3.2及以上版本(1.6.2、1.8.2),在服务器端测试读取浏览器缓存时,可以得到正确尺寸。不存在原作者所说的jQuery的load()事件存在BUG的问题。
5、下面这种才是真正正确的方法,使用JavaScript的Image类:
(正确) 的方法:
6、或一种办法
解决方法:原生js图片onload方法:
你是要获取$('.inner-message a')的值还是要使用$('.inner-message a')的事件呢?
如果是获取值,我想楼上的那位朋友他已经说过了,是说可以成功的,但是如果获取事件估计就不行了。我所说的事件是指$('.inner-message a').click或者$('.inner-message a').hover这种。
造成这个问题的原因,是因为jquery他的事件机制是当页面完全加载成功后,会根据所有目前页面上符合要求的dom添加事件标示,这样当你触发事件的时候,拥有该事件标示的DOM就会给予响应。
但你这个append很可能是页面加载完成后,再触发的事件,这样的话,很可能你这个标示初始化的时候就没有成功加上,所以你不能简单的使用click或hover这种方法,而要用另外一个写法。
$('.inner-message a').live('click',function(){})
类似这种写法,也就是使用live方法就可以了,这个也是大部分jquery无法响应的事件的解决方式,希望可以帮到你~
打字不易,如满意,望采纳。
script src=""/script
先排除兼容性问题,可以在页面上引用下公共库看下是否可以使用,以jquery的兼容性来说这个概率不是很大。
然后就是控制台看下有没有抛错,不能用大概率是引用路径出错了
应该是你的js代码写在body前面了。
网页加载内容是从上到下的,在这个标签还没有创建的时候你就调用了那段代码,所以没有找到指定的dom元素。
只要把代码放在body尾部就可以了
或者: $(function(){
//代码放在这里面
});
这种格式会确保内部的代码在所有dom加载完成的时候才开始执行。