Javascript “如何传递参数”;这";使用箭头函数打开更改事件
我通常有这样的代码: HTML代码: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
<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);
});