繁体   English   中英

Jquery 对焦反复调用

[英]Jquery Focus Repeatedly Called

我有一个表单来收集用户的数据输入,单击按钮将值插入到<table><td>单元格中。 页面上使用了全局计数器变量。 当按钮被按下时,它会找到相关的<td id="holeScore1" tabindex="1">-</td> (其中有 9 个)并匹配当前的全局计数器值。 更新时,全局计数器递增。

我想添加点击/单击<td>单元格以将全局计数器重置回此 tabindex 编号的功能,以允许数据输入更正。

目前,我有这段代码,它正在第一次点击<td>单元格。 但是,它只是无休止地重新运行alert()调用......我唯一能做的就是重新加载页面,然后单击最后的alert()离开。

<script>
   $( "td" ).focus(function() {
      alert($(this).attr('tabindex'));
   });
</script>

请注意,我通过研究和测试如何实现我想要的行为来输入tabindex值,并在 jquery.com 的文档中描述了现代浏览器可以接受的.focus() function。 我恢复到<td>元素,并在让它检测点击方面取得了进展。

  • 还需要吗?
  • 这是跟踪单击哪个元素的更好方法吗?
  • 如果是这样,等效代码是什么?

这可能是因为当您单击 td 时,它会获得“焦点”并触发您的代码并且焦点转到警报框,然后当您关闭警报时,焦点会回到最后一个元素,即 td 再次触发你的代码。

听起来您可以根据需要使用“单击”事件,例如:

<script>
   $("#someTableId").on('click', 'td', function() {
      alert($(this).attr('tabindex'));
   });
</script>

请注意使用$("#someTableId").on('click', 'td'而不是简单地使用$("td").click(任何一个都可以,但 using.on 像我一样可以确保:

a) 任何动态添加的 td 元素仍然适用于代码

b) 我们只将监听器附加到目标表中的 td 元素,而不是页面上的所有 td 元素

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM