如何将两种不同类型的事件附加到同一元素

时间:2015-03-13 01:30:40

标签: javascript html events keyboard-events

我对js很新,我可能逻辑上会以错误的方式解决这个问题。我试图让我的自定义警报对象关闭,如果有人点击按钮,或点击回车键。但是我无法让它发挥作用。

document.getElementById('dialogboxfoot').innerHTML = '<button id="OK" type="button" onkeypress="if (window.event.keyCode == 13){Alert.ok()}" onclick="Alert.ok()">OK</button>';

我有类似的文本字段工作正常。这些有什么区别?我知道内联它是混乱的,但它是一个wordpress页面。

document.getElementById('dialogboxbody2').innerHTML = '<form><input type="text" id="zipcode" maxlength="5" onkeydown="if (event.keyCode == 13){Alert.checkZip()}" autofocus /></form>'; 

更新: 我尝试了下面的内容,它仍然没有触发onkeypress事件。

<button id="OK" type="button" onkeypress="key13(event)" onclick="Alert.ok()">OK</button>  

this.key13=function(event){
                  var x = event.which || event.keyCode;
                  if (x == 13){
                    Alert.ok();
                  }
                } 

以下是CodePen http://codepen.io/enielsen0001/pen/XJxGaq

的链接

我不能完全感谢你。

2 个答案:

答案 0 :(得分:0)

在第一个示例中,您似乎尝试执行 window .event.keyCode,而在第二个(有效)event.keyCode。

答案 1 :(得分:0)

按钮事件&#39;按键&#39;重点关注它。

(尝试&#39;输入&#39;点击&#39;按钮后,您会看到它有效。)

  

onkeypress属性设置并返回当前元素的onKeyPress事件处理程序代码。

onkeypress MDN

&#13;
&#13;
var c = document.getElementById('dialogboxfoot')
c.innerHTML = '<button id="OK" type="button" style="width:100px;height:100px;" onkeypress="key13(event)" onclick="alert(true);">OK</button>';

function key13(event){
  var x = event.which || event.keyCode
  if (x == 13){
    alert('key press "Enter" after focus button" ');
  }
}
&#13;
<div id="dialogboxfoot" style="background:#CCC; width:300px;height:300px;"></div>
&#13;
&#13;
&#13;