jquery ajax load()加载了两次咱办?

nakeer456789 2010-12-24 10:52:28
$(".items img").click(function() {
if ($(this).hasClass("active")) { return; }
var url = $(this).attr("va");
var width = 955;
var height = 370;
var wrap = $("#panoramaPlayer");
var hideSource = $("#hiddenPanorama");
$(".items img").removeClass("active");
$(this).addClass("active");
$("#panoramaLoad").show();
hideSource.load(‘load1.html',{Url:url,width:width,height:height},function(){
$("#panoramaLoad").hide();
wrap.html(hideSource.html());
});
}).first().click();
...全文
470 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
nakeer456789 2010-12-30
  • 打赏
  • 举报
回复
谢谢各位。找到原因了,是因为,我之前的程序员多加了一个隐藏的结果,所以fiddle测试是ajax了两次。
CaiKanXP 2010-12-29
  • 打赏
  • 举报
回复
出现这种问题一个很可能的原因就是:事件绑定的代码被执行了两次!
请先仔细检查代码 $(".items img").click(function(){...});
确保只绑定了一次,没有重复绑定。

如果找不出原因(比如某些jQuery版本自身的bug会导致某些事件重复触发),再尝试改成如下代码:
$(".items img").unbind('click').click(function(){...});
先解绑,再重新绑定,这样可以绕过这个问题,避免重复绑定。
TaoFor 2010-12-25
  • 打赏
  • 举报
回复
用bind

绑定的事件,,~!~!
绑定的试试~!>
nakeer456789 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xming4321 的回复:]
引用 5 楼 nakeer456789 的回复:

引用 2 楼 xming4321 的回复:
.first().click();

当你点击一个img的时候你的代码的确会load两次

不过不知道你要实现什么
不知道怎么改

那为什么会加载两次呢。

你的$(".items img").click(function() 是说所有img都出发一次

然后后面又
.fi……
[/Quote]

可是上面的$(".items img").click(function() 只是设置它们的click事件,而first().click()是触发第一个的事件啊。所以我测试的,只要把first().click()删除,那么就一次不加载,而加上,就加载了两次,可见first().click()就是加载两次的代码。而且手动点击,也是加载两次,所以加载两次是$(".items img").click(function() 里面的那个load的原因,与first().click()应该无关。
十一文 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 nakeer456789 的回复:]

引用 2 楼 xming4321 的回复:
.first().click();

当你点击一个img的时候你的代码的确会load两次

不过不知道你要实现什么
不知道怎么改

那为什么会加载两次呢。
[/Quote]
你的$(".items img").click(function() 是说所有img都出发一次

然后后面又
.first().click();
这个click 也是属于上面的所有img的
所以就两次了
nakeer456789 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xming4321 的回复:]
.first().click();

当你点击一个img的时候你的代码的确会load两次

不过不知道你要实现什么
不知道怎么改
[/Quote]
那为什么会加载两次呢。
nakeer456789 2010-12-24
  • 打赏
  • 举报
回复
反正,我测试了,只要img的click被触发,都会load两次。
nakeer456789 2010-12-24
  • 打赏
  • 举报
回复
还有一个。下面是一个li的单击事件,单击后,它里面的第一个图片会自动加载。
$("#panorama_type > li").click(function(){
$("#panorama_type > li").attr('class','three');
$(this).attr("class",'two');
var index = $(this).index();
$("#panorama_navi > div").hide();
$("#panorama_navi > div").eq(index).show();
$("#panorama_navi > div").eq(index).find('.item_vessel > img').first().click();
})
十一文 2010-12-24
  • 打赏
  • 举报
回复
.first().click();

当你点击一个img的时候你的代码的确会load两次

不过不知道你要实现什么
不知道怎么改
Mr-Jee 2010-12-24
  • 打赏
  • 举报
回复
代码就这些?

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧