起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3211|回复: 8

[处理中1] 百度地图双击回调返回的参数如何写到Input里面

[复制链接]

8

主题

20

帖子

76

积分

初级会员

Rank: 2

积分
76
QQ
发表于 2016-11-6 23:08:28 | 显示全部楼层 |阅读模式
打开地图获取设置监听回调
navigator.baiduMap.base.open({
                         "position":{x:0, y(window).height()-300-50, w(window).width(), h:300},
                         "center":{lon:116.397, lat:39.910},
                         "zoomLevel":13,       
                         "events":{"click"nClick,"dbClick"ndbClick,"longPress"nLongPress}
                }, function(){
                        justep.Util.hint("成功");
                }, callBack);

双击回调事件 args 这个是justep的返回数据 我想把这个数据写到Input l里面要什么操作  ,this获取不到objcet ,求救啊。
        var ondbClick = function(event,args){
                        getAddress(args);
        };

1

主题

1831

帖子

821

积分

高级会员

Rank: 4

积分
821
QQ
发表于 2016-11-7 14:44:12 | 显示全部楼层
你好,你的意思是this.comp()获取不到input么?能不能贴一下你浏览器控制台的错误
回复 支持 反对

使用道具 举报

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-11-7 14:50:45 | 显示全部楼层
采用留住this的方式,在方法执行,定义 var self = this
然后在回调函数中用 self.
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

44

主题

150

帖子

382

积分

中级会员

Rank: 3Rank: 3

积分
382
QQ
发表于 2016-11-7 14:50:45 | 显示全部楼层
这样定义this才有效:
Model.prototype.ondbClick = function(event, args){
}
回复 支持 反对

使用道具 举报

8

主题

20

帖子

76

积分

初级会员

Rank: 2

积分
76
QQ
 楼主| 发表于 2016-11-7 17:45:23 | 显示全部楼层
谢谢大大的回复
我主要的代码跟错误如下,百度查了下主要是作用域的问题,那请问回调出来的数据要什么保存输出呢?
双击地图错误
error.jpg


//定义回调
    var onClick = function(event,args){
            getAddress(args);
    };
    var ondbClick = function(event,args){
            getAddress(args);
    };
    var onLongPress = function(event,args){
            getAddress(args);
    };
    var onViewChange = function(event,args){
            getAddress(args);
    };

    //输出回调的内容
    var getAddress = function(info) {
        var i = this;
        i.comp("addressInput").clear();
        i.comp("addressInput").updateValue(JSON.stringify(info));
        };

Model.prototype.modelLoad = function(event){
        navigator.baiduMap.base.open({
              "position":{x:0, y(window).height()-300-50, w(window).width(), h:300},
              "center":{lon:116.397, lat:39.910},
              "zoomLevel":13,   
              "events":{"click"nClick,"dbClick"ndbClick,"longPress"nLongPress}
        }, function(){
            justep.Util.hint("成功");
        }, callBack);
    };
回复 支持 反对

使用道具 举报

8

主题

20

帖子

76

积分

初级会员

Rank: 2

积分
76
QQ
 楼主| 发表于 2016-11-7 17:45:52 | 显示全部楼层
qw_zhku 发表于 2016-11-7 14:50
这样定义this才有效:
Model.prototype.ondbClick = function(event, args){
}

这样定义 回调会错误,没办法回调
回复 支持 反对

使用道具 举报

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-11-7 17:55:32 | 显示全部楼层
309100 发表于 2016-11-7 17:45
谢谢大大的回复
我主要的代码跟错误如下,百度查了下主要是作用域的问题,那请问回调出来的数据要什么保 ...

看一下这个报错到location.js的33行,看一下这里,这个报错信息,说这个comp不是一个全局对象?
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

44

主题

150

帖子

382

积分

中级会员

Rank: 3Rank: 3

积分
382
QQ
发表于 2016-11-8 14:39:47 | 显示全部楼层
309100 发表于 2016-11-7 17:45
这样定义 回调会错误,没办法回调

我写完整一点吧,你改下代码:
//调用插件时的代码:
var self = this;
function(){self.ondbClick(event)}//这里替换你原来的回调变量ondbClick

//回调函数,其它回调参数你自己添加
Model.prototype.ondbClick= function(event){
                alert(this.comp("inputXid"));
        };
回复 支持 反对

使用道具 举报

8

主题

20

帖子

76

积分

初级会员

Rank: 2

积分
76
QQ
 楼主| 发表于 2016-11-8 18:21:20 | 显示全部楼层
结贴  我直接定义了全部组件的变量 就可以了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-6 19:19 , Processed in 0.074114 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表