从onclick函数中获取价值并在函数

时间:2018-04-17 14:57:37

标签: javascript jquery html openlayers

让我说我在jquery中有这个功能。我试图访问指定元素的id,然后随意使用。

    var values = somejson.json; 

    $('.get-id').on('click', function () {
        var el = $(this);
        console.log(el.data('id'));
        console.log("====");
        var id = el.data('id'); //get this id
    });

    //i would like to use the id here I retrieve here.
    var result = values.find(x => x.id === id);
    console.log(result);

我认为这可能很简单,但我无法理解它。一些帮助将受到高度赞赏。提前谢谢。

2 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点。一个是@John所说的。但是,根据您在何处以及如何声明id变量,您可能会在全局命名空间中进行监管。

执行此操作的另一个好方法是在函数中包装需要id值的代码。像这样:

var values = somejson.json; 

$('.get-id').on('click', function () {
    var el = $(this);
    console.log(el.data('id'));
    console.log("====");

    useTheId(el.data('id'));
});

function useTheId(id) {
  var result = values.find(x => x.id === id);
  console.log(result);
}

答案 1 :(得分:-1)

重写的答案是为了考虑添加到问题中的额外代码。

您需要做的是以下内容:
 1.设置地图以及其他所需的一切一次
 2.每次点击都移动标记

所以你的代码应该像这样订购:

// setup of map, marker (with default coordinates), etc.
var marker = ...
var map = ...

$('.get-id').on('click', function () {
    // do everything you need to do to get the lat lng
    var el = ...
    var id = ...
    var lat = ...
    var lng = ...

    // move the existing marker to the new position
    // you will need to figure out how to do it with your library
    // all variables for marker, map, etc. will be accessible here
    // or delete the old marker and create a new one, or whatever else works for you
    marker.move();
});