成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? JQuery實現Ajax加載圖片的方法
全站頭部文字 我要出現在這里
JQuery實現Ajax加載圖片的方法 649 2024-03-16   

本文實例講述了JQuery實現Ajax加載圖片的方法。分享給大家供大家參考,具體如下:

最近在學習JQuery,想從原理上模擬一下無刷新的相冊瀏覽。

最先想到的思路是利用緩存,也就是先顯示提示消息,然后get圖片,在get完的時候回調,將img標簽的src改掉,由于剛剛get過,有了緩存,所以圖片會立刻顯示出來。

頁面元素:

<input class="picbtn" type="button" value="Next" />
<div class="tip">正在加載……</div>
<div class="notice">
<img />
</div>

按鈕的事件綁定:

$(".picbtn").click(function(){NextPic();});

定義了一個數組PicArr用來記錄所有圖片

NextPic內容:

$(".tip").slideDown(200); //顯示提示
$.get(PicArr[CurrPic],function(){
$("img").attr("src",PicArr[CurrPic]);
$(".tip").slideUp(200);
CurrPic++;
if(CurrPic>4)
CurrPic=0;
});

在CHROME和FF下顯示正常,IE6下異常,IE7、8未測試。

后來在ASPRAIN的開發者 稽山草 的幫助下,思路改成了先改src,然后綁定onload事件,在onload中回調。

核心代碼:

$("img").attr("src",PicArr[CurrPic]) 
.bind('load',function(){$(".tip").slideUp(200);CurrPic++;if(CurrPic>4)CurrPic=0;});

后來一看基本正常了,但是仔細看還是不正常,圖片順序開始亂跳,跟蹤了好久發現回調函數會多次運行。

中間想到會不會是事件綁定的問題,因為onclick事件的綁定是

$(Element).bind("click",callback)
可以簡寫成
$(Element).click(callback)
想到$(Element).bind("load",callback)和$(Element).load(url,callback)會不會是一樣,查資料寫得都不怎么清楚,改了試一下,還是不一樣,不過在chrome和ff下依然能工作,但是數據不太正常,IE下報錯。

再次檢查 稽山草 給的代碼,發現問題在哪了。

load事件的綁定的是一個匿名函數,而當按鈕按下時會再次綁定,所以會重復執行。于是將綁定bind改成one搞定。最終完整代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JQUERY動態加載圖片</title>
<script type="text/javascript" src="http://www.gimoo.net/t/1904/jquery/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
(function($){
$.NextPic=function()
{
$(".tip").slideDown(200);
$("img").attr("src",PicArr[CurrPic]).one('load',function(){$(".tip").slideUp(200);CurrPic++;if(CurrPic>4)CurrPic=0;});
//$("img").load(PicArr[CurrPic],function(){$(this).attr("src",PicArr[CurrPic]);$(".tip").slideUp(200);alert(CurrPic);CurrPic++;if(CurrPic>4)CurrPic=0;});
}
})(jQuery);
$(document).ready(function(){
PicArr = new Array("1.jpg","2.jpg","3.jpg","4.jpg","5.jpg");
CurrPic=0;
$(".tip").css({"position":"absolute","top":"100px","left":"50px"});
$(".tip").hide();
$(".scoll").click(function(){$.NextPic();});
})
</script>
</head>
<body>
<input class="picbtn" type="button" value="Next" />
<div class="tip">正在加載……</div>
<div class="notice">
<img id="img"/>
</div>
</body>
</html>

希望本文所述對大家jQuery程序設計有所幫助。



主站蜘蛛池模板: 标准体重| 贪玩的小水滴300字| 河南地图全图可放大| 蚂蚁搬豆简谱| 我未成年 电影| 安德鲁·林肯| 韩国电影《表妹》| high heels| 影库| 电影喜剧明星演员表| 尹雪喜演的电影在线观看| 庆余年2演员表全部员表| 偷偷藏不住演员表| 罗东| 包青天之真假包公| 炊事班班长述职报告| 日韩免费观看视频| 意大利斜体| 托尔金| 王牌御史| 风间由美的电影| 奥特曼名字大全加图片| 30届金鹰奖获奖名单| 《五十度灰》| 全国第一小县| 生死相随| 韩红个人资料| 新目标大学英语综合教程2答案| 哥也要| 巴黎宝贝| 多尔衮电视剧全集40集| 韩国一对一电影| 乔迁之喜邀请函微信版| 舞法天女第三季| 新闻联播台词| 夜色斗僵尸| 即日启程 电影| 电视剧《反击》主要演员| 黑玫瑰演员表| 白世莉电影 | 少爷爱上保镖泰剧双男主|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103