为什么.attr('data-where',''),option会初始化呢

为什么.attr('data-where',''),option会初始化呢

$.fn.UiCascading=function(){
	var ui=$(this);
	var selects=$('select',ui);
	selects
	.on('change',function(){
		var val=$(this).val();
		var index=selects.index(this);
		//触发下一个的初始化
		ui.find('select:gt('+(index+1)+')').each(function(){
			$(this)
			.attr('data-where','')
			.triggerHandler('reloadOptions');
		})
	})
	
	.on('reloadOptions',function(){
		var method=$(this).attr('data-search');
		var data=AjaxRemoteGetData[ method ]();
		var select = $(this);
		select.find('option').remove();
		$.each( data , function(i,item){
			var el = $('<option value="'+item+'">'+item+'</option>');
			select.append(el);
		});
	});
	selects.eq(0).triggerHandler('reloadOptions');
}


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,

这段代码还不全哦,可以继续往下面看,老师有讲解:

http://img1.sycdn.imooc.com//climg/5d722e6400016c4a09000820.jpg

例如:

当点击医院地区的时候,会获取当前元素的data-where属性值,开始没有值就会被赋值为空数组,然后将以医院地区选择的值放进where数组中,例如是‘朝阳区’。

然后会给index+1,也就是第二个select添加上data-where属性,值为where数组,触发reloadOptions事件,更新option中的内容。

然后遍历大于index+1的select元素,清空data-where属性值,触发reloadOptions事件,更新option中的内容。

但点击第二个下拉框的时候,重复上面的操作,从而更新内容。

主要更新option中内容是触发reloadOptions事件,这个事件里面将通过data-where属性获取的值传入到了AjaxRemoteGetData对象中:

http://img1.sycdn.imooc.com//climg/5d72305b0001bb0c09180275.jpg

通过参数来进行判断:

http://img1.sycdn.imooc.com//climg/5d72307c00012ec910540257.jpg

自己可以再往后面看看哦。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师