[英]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.