当按键功能第一次运行时,它会按照我的预期运行,并将第一个类更改为addBack。之后的每个按键都没有效果。下面显示的html是在按下1键后。
HTML:
<h1 id="id1">
<span class="addBack">H</span>
<span class="noBack">E</span>
<span class="noBack">L</span>
<span class="noBack">L</span>
<span class="noBack">O</span>
</h1>
jQuery的:
inputBox.keydown(function() {
$("span.noBack:first").removeClass("noBack").addClass("addBack");
});
答案 0 :(得分:1)
原始答案
似乎对我很有用:
$('#inputBox').keydown(function() {
$("span.noBack:first").removeClass("noBack").addClass("addBack");
});
.addBack { color: green; }
.noBack {color: red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<h1 id="id1">
<span class="addBack">H</span>
<span class="noBack">E</span>
<span class="noBack">L</span>
<span class="noBack">L</span>
<span class="noBack">O</span>
</h1>
<input id="inputBox" type="text" />
除了添加课程之外还有其他什么变化吗?比如改变输入(事件)或重新创建dom元素以便事件丢失?
编辑回答 - 似乎发生了更多导致问题的事情。
原始小提琴(来自问题下方的评论):https://jsfiddle.net/HYUTS/y0jd2zxr/5/。
修正小提琴:https://jsfiddle.net/y0jd2zxr/7/。
此行在每次keydown事件后重置'id1'的内容:
$('#id1').html(emptyArray);
。
如果删除它可以正常工作。