javascript - 带有输入 oninput 事件的事件委托(delegate)

标签 javascript input event-delegation

是否可以设置 oninput 事件委托(delegate)来更改 changeText div 的文本?

<div id="manyInputs">
    <div>
        <input type="text">
        <div class="changeText">

        </div>
    </div>
    <div>
        <input type="text">
        <div class="changeText">

        </div>
    </div>
    <div>
        <input type="text">
        <div class="changeText">

        </div>
    </div>
</div>

最佳答案

一个可行的普通 JS 解决方案是将“change”事件绑定(bind)到“manyInputs”div 并从事件处理程序中获取目标元素并寻找它的下一个兄弟元素。如果您不知道代码的结构,那么您还可以向输入添加一个数据 ID,然后使用该 ID 找到要将值添加到的文本 div。

HTML

<div id="manyInputs">
    <div>
        <input type="text">
        <span class="changeText"></span>
    </div>
    <div>
        <input type="text">
        <span class="changeText" ></span>
    </div>
    <div>
        <input type="text">
        <span class="changeText"></span>
    </div>
 </div>

Javascript

var inputs = document.getElementById('manyInputs');
inputs.addEventListener('change', function(e){
    var value = e.target.value;
    e.target.nextElementSibling.innerHTML = value;
});

JS fiddle :https://jsfiddle.net/s7wtevbu/

JS Fiddle with data-id 解决方案:https://jsfiddle.net/kas1h6xe/

关于javascript - 带有输入 oninput 事件的事件委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43078428/

相关文章:

javascript - 如何延迟加载 jQuery 本身,特别是在使用 $(document).ready() 时

javascript - 有没有办法从 Internet Explorer 中的错误对象获取行号或堆栈跟踪?

javascript - 实例 Angular 2 组件两次

html - 在 Chrome 中显示输入 type=date-local 的秒数

javascript - 如何忽略 td 内的复选框

javascript - 事件委托(delegate)问题

php - 在 jquery 中获取假路径

javascript - 如何使用 Javascript 中的输入修复 'Cannot read property ' value' of null'

java - System.out.print() 读取 Scanner 错误

javascript - 单击时删除动态生成的 <div>