以下是代码:
<div onclick="this.setAttribute('contenteditable', 'true');"
onkeypress="console.info(event.keyCode)">foo</div>
这就是我期望的工作方式:用户点击div
,它是可编辑的,然后我可以拦截一些关键事件,使用Enter,Tab,Arrow键运行自定义处理。
问题是,您可以在点击后修改div
,但无法从onkeypress
获取第一个按键事件。如果按两次,则只能获得按键事件。
我在Win7 32位上使用Chrome Dev v12。请帮忙
答案 0 :(得分:4)
尝试像这样添加this.focus
:
<div onclick="this.setAttribute('contenteditable', 'true');this.focus();"
onkeypress="console.info(event.keyCode)">foo</div>
我在这里试过http://jsfiddle.net/carlesandres/At9uK/并且有效。
答案 1 :(得分:0)
你可以这样做(jquery方式):
<div id="div1"> foo </div>
<script>
$(document).ready(function(){
$("#div1").click(function(){
$(this).attr("contenteditable", true);
}).keypress(function(event){
console.info(event.keyCode);
});
});
</script>
希望这会有所帮助。干杯