[英]jQuery first: selector not working after function run once
按下鍵功能第一次運行時,它會執行我期望的操作,並將第一個類更改為addBack。 此后的每次按鍵均無效。 1次按鍵后,下面顯示的html是。
的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");
});
原始答案
似乎為我工作就好了:
$('#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/ 。
這行代碼是在每次按鍵事件后重置“ id1”的內容: $('#id1').html(emptyArray);
。
如果刪除它,它將起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.