首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将keypress事件添加到没有JQuery的类中

将keypress事件添加到没有JQuery的类中
EN

Stack Overflow用户
提问于 2016-03-20 20:34:40
回答 1查看 1.6K关注 0票数 0

下面的代码为单击附加事件处理程序,但不适用于键盘事件。我不希望仅仅是键盘事件的document.keypress,而是特定的类元素。因此,我已经写出了“测试”,它适用于鼠标点击,但不适用于任何键盘事件。

代码语言:javascript
运行
复制
  function test(className, fnCall, eventToApply){
    if(typeof document.getElementById('x').getElementsByClassName(className) !='undefined') {
                    var els = document.getElementById('x').getElementsByClassName(className);
                    for(var i = 0; i < els.length; i++) {
                        if(els[i].addEventListener) { //Undefined for keypress events
                          els[i].addEventListener(eventName,  function(e) { fnCall(e); }); }
                        else {  //Hardcode for testing
                           els[i].onclick = function(e) { fnCall(e); };     
                            els[i].onkeypress = function(e) { fnCall(e); } //doesn't work!
                        }
                    }

不过,可以工作,但我无法在document或keypress本身上设置单独的元素处理程序。

代码语言:javascript
运行
复制
document.addEventListener('keypress', function(event){
                   //This works, but setting up events for each class type element doesn't work for keypress 
        })

换句话说,在不使用JQuery的情况下,是否可以执行以下操作:

代码语言:javascript
运行
复制
 document.addEventListener('keypress', function(event){
       //This works in Jquery
        $('.customClass-'+ event.keycode).click(); 
  });



document.addEventListener('keypress', function(event){
 //This doesn't register, says undefined for any event or attachEvenHandler/attachEvent    
 test('.class'+event.keycode, myFunction() , 'keypress');

 });
EN

回答 1

Stack Overflow用户

发布于 2016-03-20 20:42:21

你可以用这个

代码语言:javascript
运行
复制
document.addEventListener('keypress', function(event){
    var elements = document.getElementsByClassName("customClass-" + event.keycode);
    for (var i = 0; i < elements.length; i++) {
        elements[i].click();
    }
});

w3school文档

  • HTML ()方法
  • HTML ()方法
  • HTML ()方法
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36119208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档