将参数添加到on("单击")功能

时间:2016-03-26 10:30:28

标签: javascript leaflet

我使用

在地图上制作了一些标记
L.marker([42.76, 20.52], 5, {color: "blue"}).addTo(map).bindPopup("<b>Name: </b> My name<br /><b>Adress:</b> My adress<br /> <b>Description:</b>My description...").on("click", circleClick);

我的circleClick功能如下:

function circleClick(e) {
app.getInfo(e.latlng.lat, e.latlng.lng);;}

我使用此功能将坐标从JavaScript发送到Java。但现在我想在我的circleClick函数中添加一些参数。这不是问题,我知道如何做到这一点。但我不知道如何使用参数调用该函数。我试过了:

L.marker([42.76, 20.52],[...]).on("click", circleClick(e, parameter1, parameter2));

但它不起作用。请帮助我,如何在.on("click", circleClick(...));指定参数?

2 个答案:

答案 0 :(得分:1)

如果您不介意参数的顺序,可以bind来添加参数:

.on("click", circleClick.bind(null, parameter1, parameter2));

它会创建前置parameter1parameter2的函数,以便调用回调,如circleClick(parameter1, parameter2, e)

答案 1 :(得分:1)

L.marker([42.76, 20.52],[...]).on("click", function(e) {
  circleClick(e, parameter1, parameter2);
});

来自jquery doc: The handler argument is a function (or the value false, see below), and is required unless you pass an object for the events argument.您正在做的是在on()方法中调用函数而不指定处理程序。