2 回答
![?](http://img1.sycdn.imooc.com/545868190001d52602200220-100-100.jpg)
TA贡献1786条经验 获得超11个赞
您可以data-*向输入添加一个没有值的属性,然后在输入的值至少更改一次时更新它。
在我的代码段中,一旦单击输入,就会设置实际值(因此,如果您单击它而不更改最后的颜色,它将返回您#000000)。通过删除click事件来删除此行为。
该按钮只是记录输入的值。
document.addEventListener('DOMContentLoaded', () => {
// INPUT
const eInput = document.querySelector('input'),
inputEvent = () => eInput.dataset.realValue = eInput.value;
eInput.addEventListener('click', inputEvent);
eInput.addEventListener('change', inputEvent);
// LOG BTN
const eBtn = document.querySelector('button');
eBtn.addEventListener('click', () => console.log(getColorInputValue(eInput)));
});
/**
* @param {HTMLElement} element
* @returns {string|null}
*/
function getColorInputValue(element) {
return element.dataset.realValue;
}
<input type="color" data-real-value="">
<button>Get color</button>
添加回答
举报