如何使用JavaScript更新点击时的对象值

时间:2018-10-12 12:11:21

标签: javascript ecmascript-6

const obj = {'name1':true, 'name2': false, 'name3':true}

我有一个onclick函数,我将基于此name获得name,如果我需要true,我需要更改对象名称值false更改为false的情况下更改为true

注意:这应该基于仅单击

我的输出应该是

const obj = {'name1':true, 'name2': true, 'name3':true}

2 个答案:

答案 0 :(得分:1)

您只需要对每个input进行addEventListener,并将当前状态“复制”到目标对象。这是带有注释的代码示例:

const obj = {
  'name1': true,
  'name2': false,
  'name3': true
};

/* Get all inputs */
const inputs = document.querySelectorAll('input');

/* Add "click" listener to every input */
inputs.forEach(input => input.addEventListener('click', () => {
  /* Store current state of clicked input to target object property */
  obj[input.name] = input.checked;
  console.log(obj);
}));
input {
  margin: 12px;
}
<input type="checkbox" name="name1" checked />
<input type="checkbox" name="name2" />
<input type="checkbox" name="name3" checked />

答案 1 :(得分:0)

  

尝试以下代码以及概念,可能会解决您的问题:)

  self.cacheDom.$document.off('keydown').on('keydown',firstHandler);
  self.cacheDom.$document.off('keydown').on('keydown',firstHandler);


   var firstHandler=function(){
     //my function with a scroll trigger if condition is satisfied 
         self.cacheDom.$document.on('keydown',secondhandler)
    }
   var secondHandler=function(){
     // my another function
         self.cacheDom.$document.on('keydown',firstHandler)
    }