简体   繁体   English

如何使 addEventListener 工作/Javascript

[英]How to make addEventListener work/Javascript

I am new in js and can't understand where I made a mistake.我是 js 新手,不明白我在哪里犯了错误。 I try to make select options switch.我尝试使 select 选项切换。 This is an HTML code这是一个 HTML 代码

   <select id="sort">
        <option value="name">name</option>
        <option value="price">price</option>
      </select>

I tried using AddEventListener('change').我尝试使用 AddEventListener('change')。 but it switches only manually.但它只能手动切换。 How to make it work automatically when I choose price or name in select?当我在 select 中选择价格或名称时,如何使其自动工作?

let c = document.getElementById('sort');
   c.addEventListener('change', byField);
function byField(value) {
  return (a, b) => a[value] > b[value] ? 1 : -1; 
};
  data.sort(byField('price'));

I will be grateful for any help!我将不胜感激任何帮助!

You are doing it manually as data.sort(byField('price'));您正在手动执行data.sort(byField('price')); , make it dynamic by getting the value from event object. ,通过从事件 object 获取value使其动态化。

e.target.value will give you the changed value of select HTML element. e.target.value将为您提供select HTML 元素的更改value

let c = document.getElementById("sort");

function byField(value) {
    return (a, b) => (a[value] > b[value] ? 1 : -1);
}
c.addEventListener("change", (e) => {
    data.sort(byField(e.target.value));
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM