Javascript 从函数中的函数中提取值

Javascript 从函数中的函数中提取值,javascript,jquery,Javascript,Jquery,我有一个映射元素,它有多个区域,用户可以选择其中一个。每个区域都有一个ID,表示一个数字(我需要在后面的等式中使用) 如何将所选区域的ID存储在变量中以供以后使用 我迄今为止的工作: function areaSelection(){ $("map").on('click', 'area', function (e){ e.preventDefault(); var areaSelect = parseInt(this.id); console.log(areaSelect)

我有一个
映射
元素,它有多个
区域
,用户可以选择其中一个。每个
区域
都有一个
ID
,表示一个数字(我需要在后面的等式中使用)

如何将所选
区域的
ID
存储在变量中以供以后使用

我迄今为止的工作:

function areaSelection(){
$("map").on('click', 'area', function (e){
    e.preventDefault();
    var areaSelect = parseInt(this.id);


console.log(areaSelect);
});

}

var mapSelection = areaSelection();

$("area").on('click', areaSelection);
尽量不要使用全局变量。 首先将函数调用分配给一个变量,该变量返回未定义的(除非使用return语句,否则所有函数都会执行此操作)

其次
区域选择
功能仅创建点击事件。 它实际上并不计算
areaSelect


相反,请尝试以下方法:

var mapSelection;

$("map").on('click', 'area', areaSelection);

function areaSelection(e) {
    e.preventDefault();
    mapSelection = parseInt(this.id);
}
这样,无论何时单击
映射
,都会设置
映射选择
但请注意,这不太可能有效

请尽量不要使用全局变量。 首先将函数调用分配给一个变量,该变量返回未定义的(除非使用return语句,否则所有函数都会执行此操作)

其次
区域选择
功能仅创建点击事件。 它实际上并不计算
areaSelect


相反,请尝试以下方法:

var mapSelection;

$("map").on('click', 'area', areaSelection);

function areaSelection(e) {
    e.preventDefault();
    mapSelection = parseInt(this.id);
}

通过这种方式,
地图选择
在任何时候点击
地图
时都会被设置,但要注意,这不太可能有效

区域选择
功能之外创建变量。请参阅“功能范围”()。为什么areaSelect变量不是全局变量?变量<代码>如何?切勿使用全局变量。首先,将函数调用分配给一个变量,该变量返回
undefined
。其次,
areaSelection
功能仅创建单击事件。它实际上不计算
areaSelect
值。在
areaSelection
函数之外创建变量。请参阅“功能范围”()。为什么areaSelect变量不是全局变量?变量<代码>如何?切勿使用全局变量。首先,将函数调用分配给一个变量,该变量返回
undefined
。其次,
areaSelection
功能仅创建单击事件。它实际上不会计算
区域选择值。您可以获得额外积分!这就成功了!我可以问一下,为什么效率很低?不确定。。。单击鼠标时,您可能正在计算某些内容。我提供的代码可能不会那么低效。(如果有人发现代码有大问题,我想掩饰一下。)@4castle——在所有代码都由您编写的个人项目中?没有一个否则:@4castle-在小玩具项目中,所有代码都是由您全局人员编写的,这样可能就可以了。很少。玩具。项目。在任何重要大小的情况下,全局变量都可能导致意外的副作用,因为各种代码位在全局上读取和写入值,即使您是唯一的编码器。封装是关键;代码应该不受代码之外的事物的影响。关于这一点的讨论随处可见,如书籍、教程、网络文章等。;这是程序设计中一个非常基本的概念。给你加分!这就成功了!我可以问一下,为什么效率很低?不确定。。。单击鼠标时,您可能正在计算某些内容。我提供的代码可能不会那么低效。(如果有人发现代码有大问题,我想掩饰一下。)@4castle——在所有代码都由您编写的个人项目中?没有一个否则:@4castle-在小玩具项目中,所有代码都是由您全局人员编写的,这样可能就可以了。很少。玩具。项目。在任何重要大小的情况下,全局变量都可能导致意外的副作用,因为各种代码位在全局上读取和写入值,即使您是唯一的编码器。封装是关键;代码应该不受代码之外的事物的影响。关于这一点的讨论随处可见,如书籍、教程、网络文章等。;这是程序设计中一个极其基本的概念。