700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 级联下拉框效果 动态加载图片

级联下拉框效果 动态加载图片

时间:2020-01-25 06:30:34

相关推荐

级联下拉框效果 动态加载图片

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><title>JQuery实例-级联下拉框效果</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link type="text/css" rel="stylesheet" href="css/chainselect.css" /><script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript" src="js/chainselect.js"></script></head><body><div class="loading"><p><img src="images/data-loading.gif" alt="数据装载中" /></p><p>数据装载中......</p></div><div class="car"><span class="carname">汽车厂商:<select><option value="" selected="selected">请选择汽车厂商</option><option value="BMW">宝马</option><option value="Audi">奥迪</option><option value="VW">大众</option></select><img src="images/pfeil.gif" alt="有数据" /></span><span class="cartype">汽车类型:<select></select><img src="images/pfeil.gif" alt="有数据" /></span><span class="wheeltype">车轮类型:<select></select></span></div><div class="carimage"><p><img src="images/img-loading.gif" alt="图片装载中" class="carloading" /></p><p><img src="" alt="汽车图片" class="carimg"/></p></div></body></html>

$(document).ready(function(){//找到三个下拉框var carnameSelect = $(".carname").children("select");var cartypeSelect = $(".cartype").children("select");var wheeltypeSelect = $(".wheeltype").children("select");var carimg = $(".carimg");//给三个下拉框注册事件 carnameSelect.change(function(){//1.需要获得当前下拉框的值var carnameValue = $(this).val();//1.1只要第一个下拉框内容有变化,第三个下拉框都要先隐藏起来 wheeltypeSelect.parent().hide();//1.2将汽车图片隐藏起来carimg.hide().attr("src","");//2.如果值不为空,则将下拉框的值传送给服务器if (carnameValue != "") {if (!carnameSelect.data(carnameValue)) {$.post("ChainSelect",{keyword: carnameValue, type: "top"},function(data){//2.1接收服务器返回的汽车类型if (data.length != 0) {//2.2解析汽车类型的数据,填充到汽车类型的下拉框中cartypeSelect.html("");$("<option value=''>请选择汽车类型</option>").appendTo(cartypeSelect);for (var i = 0; i < data.length; i++) {$("<option value='" + data[i] + "'>" + data[i] + "</option>").appendTo(cartypeSelect);}//2.2.1汽车类型的下拉框显示出 cartypeSelect.parent().show();//2.2.2第一个下拉框后面的指示图片显示出来 carnameSelect.next().show();} else {//2.3没有任何汽车类型的数据 cartypeSelect.parent().hide();carnameSelect.next().hide();}carnameSelect.data(carnameValue, data);}, "json");} else {var data = carnameSelect.data(carnameValue);//2.1接收服务器返回的汽车类型if (data.length != 0) {//2.2解析汽车类型的数据,填充到汽车类型的下拉框中cartypeSelect.html("");$("<option value=''>请选择汽车类型</option>").appendTo(cartypeSelect);for (var i = 0; i < data.length; i++) {$("<option value='" + data[i] + "'>" + data[i] + "</option>").appendTo(cartypeSelect);}//2.2.1汽车类型的下拉框显示出cartypeSelect.parent().show();//2.2.2第一个下拉框后面的指示图片显示出来carnameSelect.next().show();} else {//2.3没有任何汽车类型的数据cartypeSelect.parent().hide();carnameSelect.next().hide();}}} else {//3.如果值为空,那么第二个下拉框所在span要隐藏起来,第一个下拉框后面的指示图片也要隐藏 cartypeSelect.parent().hide();carnameSelect.next().hide();}});cartypeSelect.change(function(){//1.需要获得当前下拉框的值var cartypeValue = $(this).val();//1.1将汽车图片隐藏起来carimg.hide().attr("src","");//2.如果值不为空,则将下拉框的值传送给服务器if (cartypeValue != "") {if (!cartypeSelect.data(cartypeValue)) {$.post("ChainSelect",{keyword: cartypeValue, type: "sub"},function(data){//2.1接收服务器返回的汽车类型if (data.length != 0) {//2.2解析汽车类型的数据,填充到车轮类型的下拉框中wheeltypeSelect.html("");$("<option value=''>请选择车轮类型</option>").appendTo(wheeltypeSelect);for (var i = 0; i < data.length; i++) {$("<option value='" + data[i] + "'>" + data[i] + "</option>").appendTo(wheeltypeSelect);}//2.2.1车轮类型的下拉框显示出 wheeltypeSelect.parent().show();//2.2.2第二个下拉框后面的指示图片显示出来 cartypeSelect.next().show();} else {//2.3没有任何汽车类型的数据 wheeltypeSelect.parent().hide();cartypeSelect.next().hide();}cartypeSelect.data(cartypeValue, data);}, "json");} else {var data = cartypeSelect.data(cartypeValue);//2.1接收服务器返回的汽车类型if (data.length != 0) {//2.2解析汽车类型的数据,填充到车轮类型的下拉框中wheeltypeSelect.html("");$("<option value=''>请选择车轮类型</option>").appendTo(wheeltypeSelect);for (var i = 0; i < data.length; i++) {$("<option value='" + data[i] + "'>" + data[i] + "</option>").appendTo(wheeltypeSelect);}//2.2.1车轮类型的下拉框显示出wheeltypeSelect.parent().show();//2.2.2第二个下拉框后面的指示图片显示出来cartypeSelect.next().show();} else {//2.3没有任何汽车类型的数据 wheeltypeSelect.parent().hide();cartypeSelect.next().hide();}}} else {//3.如果值为空,那么第三个下拉框所在span要隐藏起来,第二个下拉框后面的指示图片也要隐藏 wheeltypeSelect.parent().hide();cartypeSelect.next().hide();}});wheeltypeSelect.change(function(){//1.获取车轮类型var wheeltypeValue = $(this).val();//2.根据汽车厂商名称,汽车型号和车轮类型得到汽车图片的文件名var carnameValue = carnameSelect.val();var cartypeValue = cartypeSelect.val();var carimgname = carnameValue + "_" + cartypeValue + "_" + wheeltypeValue + ".jpg";//3.显示出loading的图片 carimg.hide();$(".carloading").show();//4.通过Javascript中的Image对象预装载图片var cacheimg = new Image();$(cacheimg).attr("src","images/" + carimgname).load(function(){//隐藏loading图片$(".carloading").hide();//显示汽车图片carimg.attr("src","images/" + carimgname).show();});//3.修改汽车图片节点的src的值,让汽车图片显示出来//carimg.attr("src","images/" + carimgname).show();//4.使汽车图片的节点显示出来 });//给数据装载中的节点定义ajax事件,实现动画提示效果$(".loading").ajaxStart(function(){$(this).css("visibility","visible");$(this).animate({opacity: 1},0);}).ajaxStop(function(){$(this).animate({opacity: 0},500);});})

.loading {width: 400px;/*margin-left: auto;*//*margin-right: auto;*/margin: 0 auto;visibility: hidden; }.loading p {text-align: center;}p {margin: 0;}.car {/*width: 500px;*//*margin: 0 auto;*/text-align: center;}.carimage {text-align: center;}.cartype, .wheeltype, .carloading, .carimg, .car img {display: none;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。