使用geous.js lib

时间:2015-04-26 05:34:05

标签: javascript google-maps javascript-events event-handling

我在检索传递给我的eventHandler的参数时遇到了问题。

我正在使用geous将地图放入内部和activeadmin界面。该解决方案正在显示页面,但我没有在索引页面上工作。我们的想法是使用我的模型地理坐标将处理程序附加到标记上的dragend事件。

我的所作所为:

map.locations.add($fields.geousable('getLocation'), { draggable: true, on: { dragend: setFieldsLocation }});

和setFieldsLocation定义如下:

  function setFieldsLocation (event) {
      alert(setFieldsLocation.caller);
       console.log(event);
      $('.geousable').find("input")[0].value = event.data.lat;
      $('.geousable').find("input")[1].value = event.data.lng;
  };

所以第一行绑定处理程序(用于dragend),geous lib代码中的方法附加它并在事件触发时调用它,这里是片段:

var _onAdd = function (locationMarker, opts) {
            // not relevant code

            if (options.on) {
                for (event in options.on) {

                    eventHandler = function() {
                        var handler = options.on[event],
                            location = locationMarker.location;

                        return function() {
                            handler.call(location);
                        }
                    }();

                    google.maps.event.addListener(locationMarker.marker, event, eventHandler);
                }
            }
        };

调试器在调用处理程序时显示位置正确的位置变量,但是我无法在“setFieldsLocation”函数中获取位置变量。我尝试了很多东西。我更改了javascript函数的标题,我使用了event,e,arguments和这类东西:

console.log("arguments.callee.caller.name = " +
         arguments.callee.caller.name);
     console.log("arguments.callee.caller.toString() = " +
         arguments.callee.caller.toString());  

但没有运气。

对于解释此处发生的事情的想法将非常感激。

0 个答案:

没有答案