2015-01-14 50 views
0

[仅供参考:我不允许改变标记方式。 div将被点击..不是按钮或锚]如何使用内联javascript按下enter键来触发onclick?

我有一个菜单(应通过可访问性标准),将点击时打开其子菜单。

这是的onclick功能,我需要做同样的功能,当按下回车键,

// parent menu (this will repeat)   
    <div onclick="javascript:ToggleMenu('Calendar');" class="menu-item" style="cursor: hand;" tabindex="2"> 
     <p>Calendar</p> 
     </div> 

//submenu (this will repeat) 
      <div id="Calendar" class="menu-subitem" style="display: none;" tabindex="2"> 


      <a onclick="Audit(this)" tabindex="2" href="Calendar/CalendarAssignment.aspx" id="TM_C1">Calendar Assignment</a> 
      <a onclick="Audit(this)" tabindex="2" href="Calendar/ShiftAssignment.aspx" id="TM_C2">Shift Assignment</a> 
      </div> 

的感谢! 我尽我所能清楚喔!

+1

无法改变为'输入类型提交'? – Bharadwaj

+1

按下输入页面上的任何位置?同样放弃'javascript:',它什么都不做。 –

+0

没有这样的选项..只是onlick ..我必须在按键上也做。 – xawi

回答

2

这里的访问解决方案,同时保持div

<div id="foo" role="button" tabindex="0">Toggle menu</div> 

<script> 
    $('#foo').click(function() { 
     ToggleMenu('<%# Container.DataItem.FuncID %>'); 
    }).keydown(function(e) { 
     if (e.which === 32 || e.which === 13) { 
      this.click(); 
     } 
    }); 
</script> 

但说实话,你应该只使用一个button

<button id="foo">Toggle menu</button> 

<script> 
    $('#foo').click(function() { 
     ToggleMenu('<%# Container.DataItem.FuncID %>'); 
    }); 
</script> 
+0

我讨厌从旧栗子灰尘,但问题是没有标签的jQuery。但这显然是对讨论的积极贡献。再加上一个 – chiliNUT

+0

Fair point re jQuery。 – danielnixon

0

这将做到这一点,当他们按下回车键上的任何地方页面

<div onclick="javascript:ToggleMenu('<%# Container.DataItem.FuncID %>');"> 
<script> 
    document.addEventListener("keypress", function (evt) 
    { 
     if (evt.keyCode === 13) { 
      //they pressed enter 

      //now get the divevent 
      var div = document.querySelector('div[onclick*="ToggleMenu"]'); 
      //trigger the event 
      div.onclick.apply(div); 
     } 
    } 
    ); 
</script> 
+0

这需要'role =“按钮”','tabindex =“0”',并且您还需要触发空格键的点击。 – danielnixon

+0

你在说什么? – chiliNUT

+0

查看https://danielnixon.org/adventures-in-stack-overflows-html-tag/#clickable-divs-spans-etc – danielnixon

0

我可以看到你在代码中有一个错误

onclick"javascript:xxxx"

是不正确的,

"javascript:xxx" 

应该使用的“一个”标签“href”属性,只是删除“的javascript:”在你的onclick属性中,你可能会得到你想要的。

+0

应该是一个评论而不是答案 – chiliNUT

相关问题