Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “如何传递参数”;这";使用箭头函数打开更改事件_Javascript_Jquery_Arrow Functions - Fatal编程技术网

Javascript “如何传递参数”;这";使用箭头函数打开更改事件

Javascript “如何传递参数”;这";使用箭头函数打开更改事件,javascript,jquery,arrow-functions,Javascript,Jquery,Arrow Functions,我通常有这样的代码: HTML代码: <select id="mySelectOne"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> $("#mySelectOne").on("change",function(){ var

我通常有这样的代码:

HTML代码:

<select id="mySelectOne">
   <option value="1">1</option>
   <option value="2">2</option>
   <option value="3">3</option>
</select>
$("#mySelectOne").on("change",function(){
    var value = $(this).val(); // Return the value selected
    alert(value); 
});
使用箭头功能:

演示:

当我使用箭头函数时,
的值是
未定义的
(应参考选择元素)


如何传递参数?

您不能。这是箭头点函数的一半,它们关闭了
这个
,而不是根据调用方式设置自己的函数。对于问题中的用例,如果您想在调用处理程序时由jQuery设置
this
,则处理程序需要是
函数
函数

但是,如果您有使用箭头的理由(可能您想使用
this
了解箭头以外的含义),您可以使用
e.currentTarget
而不是
this
,如果您愿意:

$("#mySelectTwo").on("change", e => {      // Note `e` argument
    var value = $(e.currentTarget).val();  // ...and using it here
    alert(value);
});

事件对象上的
currentTarget
与jQuery在调用处理程序时设置的
this
相同。

这是一个很好的答案@凯梅迪娜:很高兴这有帮助!不过,如果你不接受,我已经把它贴到Rory链接的前一个问题上了,所以我将在这里删除它。
$("#mySelectTwo").on("change", e => {      // Note `e` argument
    var value = $(e.currentTarget).val();  // ...and using it here
    alert(value);
});