我有一組3個可編輯的預標籤。當某人在其中一條線上並點擊'輸入'時,我希望它在下面(在文檔樹中)插入一個新標籤,它位於該標籤上。我試圖在標籤上放置一個事件處理程序,以便發生這種情況,但'onkeypress'似乎沒有被解僱。用於插入新預標籤的JavaScript事件處理程序
<script>
function handlers(){
var pres = document.getElementsByTagName("pre");
for(i=0; i<pres.length;i++){
pres[i].addEventListener("onkeypress", function(e){
if(e.which != 13) return;//the ENTER key
var tag = e.srcElement;
if(tag.nextSibling){
var next = tag.nextSibling;
var newPre = document.createElement('pre');
tag.nextSibling = newPre;
newPre.nextSibling = next;
}
var tree = document.getElementById("tree");
tree.innerHTML = document.getElementByTagName().length;
});
}
}
</script>
<body onload="handlers();">
<div id="editor" contentEditable="true">
<pre>1</pre>
<pre>2</pre>
<pre>3</pre>
</div>
<div>
<p id="tree"></p>
</div>
</body>
哦哎呦我做的蟒蛇的迭代是通過一個數組,而不是通過JS的屬性。我相應地修改了它,並添加了正確的事件偵聽器,但仍然沒有看到任何東西 – Chris 2012-01-07 02:54:51
@Chris addEventListener採用不帶'on'前綴的事件類型。例如'pres [i] .addEventListener(「keypress」,function(e){' – Shad 2012-01-07 03:00:34
)哦,他們只是偷偷摸摸地對着你。好吧,現在很好,我在函數的開頭部分提醒一下,看它是否得到 – Chris 2012-01-07 03:42:37