老师讲解一下

老师讲解一下

.on('reloadOptions',function(){

        var method = $(this).attr('data-search');

        var args = $(this).attr('data-where').split(',');

        var data = AjaxRemoteGetData[ method ].apply( this, args );

        var select = $(this);me

        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

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

2回答
好帮手慕言 2020-08-03 14:01:50

同学你好,可以参考下方:

在data.js中给AjaxRemoteGetData对象添加了很多方法:

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

在html结构中添加在了data-search中

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

在ui.js中获取了data-search值:

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

然后通过属性名获取属性值,这里因为将data-search属性值赋值给了method变量,所以通过[]的方法获取属性值,也就是获取相对应的方法再调用。

arg就是获取select的data-where属性值,例如朝阳区。

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

同学可以结合视频再理解下。祝学习愉快~

好帮手慕言 2020-08-02 09:51:50

同学你好,同学的代码中多了me

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

整体可以参考下方:

// 绑定自定义reloadOptions事件
        .on('reloadOptions', function() {
            // 获取select的data-search属性值
            var method = $(this).attr('data-search');
            // 获取select的data-where属性值并使用逗号分隔
            var args = $(this).attr('data-where').split(',');
            // 从通过参数从data.js文件中获取数据
            var data = AjaxRemoteGetData[method].apply(this, args);
            var select = $(this);
            // 将原有的option移除
            select.find('option').remove();
            // 将获取的指定数据遍历,和option标签拼接,重新添加到select中
            $.each(data, function(i, item) {
                var el = $('<option value="' + item + '">' + item + '</option>');
                select.append(el);
            });
        });
    // 默认第一个的select触发更新事件
    selects.eq(0).triggerHandler('reloadOptions');

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • 提问者 qq_慕瓜7049344 #1
    var data = AjaxRemoteGetData[ method ].apply( this, args ); 老师这里面的数值是哪一部分的 method 是上面 apply(this,ages 这里它添加进来的是什么)
    2020-08-03 11:14:03
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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