Javascript 在jquery的表行中执行单击或聚焦 请考虑以下代码:
我有一张这样的桌子:Javascript 在jquery的表行中执行单击或聚焦 请考虑以下代码:,javascript,jquery,html,focus,Javascript,Jquery,Html,Focus,我有一张这样的桌子: <table class="ArrowNav" cellspacing="0" rules="all" border="1" id="GridView1" style="height:302px;width:692px;border-collapse:collapse;"> <tr> <th class="Id" scope="col">Id</th><th scope="col">"Gro
<table class="ArrowNav" cellspacing="0" rules="all" border="1" id="GridView1" style="height:302px;width:692px;border-collapse:collapse;">
<tr>
<th class="Id" scope="col">Id</th><th scope="col">"Group</th><th scope="col">Value</th>
</tr><tr>
<td align="center" valign="middle">1</td><td align="center" valign="middle">1</td><td align="center" valign="middle">100</td>
</tr><tr>
<td align="center" valign="middle">2</td><td align="center" valign="middle">1</td><td align="center" valign="middle">120</td>
</tr><tr>
<td align="center" valign="middle">3</td><td align="center" valign="middle">1</td><td align="center" valign="middle">100</td>
</tr><tr>
<td align="center" valign="middle">4</td><td align="center" valign="middle">2</td><td align="center" valign="middle">90</td>
</tr><tr>
<td align="center" valign="middle">5</td><td align="center" valign="middle">2</td><td align="center" valign="middle">105</td>
</tr><tr>
<td align="center" valign="middle">6</td><td align="center" valign="middle">3</td><td align="center" valign="middle">300</td>
</tr><tr>
<td align="center" valign="middle">7</td><td align="center" valign="middle">4</td><td align="center" valign="middle">123</td>
</tr><tr>
<td align="center" valign="middle">8</td><td align="center" valign="middle">4</td><td align="center" valign="middle">110</td>
</tr><tr>
<td align="center" valign="middle">9</td><td align="center" valign="middle">5</td><td align="center" valign="middle">100</td>
</tr><tr>
<td align="center" valign="middle">10</td><td align="center" valign="middle">5</td><td align="center" valign="middle">110</td>
</tr>
</table>
问题是导航表时必须有焦点。我为设置焦点编写了以下代码:$('.ArrowNav tr').first().focus()我还写了以下代码:$('.ArrowNav tr:first').first().trigger('click')代码>但行上的单击事件不会触发。我希望在页面加载中,我可以在行之间导航并按箭头键。问题在哪里
谢谢范围界定和选择问题
在定义Click函数之前,不能调用Click事件
$('.ArrowNav tr').on('click', function () {
alert('a');
});
$('.ArrowNav tr').eq(0).click();
无法将键
事件向上/向下
绑定到表格,因为表格无法获得焦点。文档立即以焦点开始,因此可以将keyup/down事件绑定到它
$(document).on('keyup', function(e) {
ResetAllRowColor();
switch (e.keyCode) {
case 40:
//Down
SelectedRow++;
$('.ArrowNav tr').eq(SelectedRow).css('background-color', 'yellow');
break;
case 38:
//Up
SelectedRow--;
$('.ArrowNav tr').eq(SelectedRow).css('background-color', 'yellow');
break;
}
});
您的工作JSFIDLE范围界定和选择问题
在定义Click函数之前,不能调用Click事件
$('.ArrowNav tr').on('click', function () {
alert('a');
});
$('.ArrowNav tr').eq(0).click();
无法将键
事件向上/向下
绑定到表格,因为表格无法获得焦点。文档立即以焦点开始,因此可以将keyup/down事件绑定到它
$(document).on('keyup', function(e) {
ResetAllRowColor();
switch (e.keyCode) {
case 40:
//Down
SelectedRow++;
$('.ArrowNav tr').eq(SelectedRow).css('background-color', 'yellow');
break;
case 38:
//Up
SelectedRow--;
$('.ArrowNav tr').eq(SelectedRow).css('background-color', 'yellow');
break;
}
});
您的工作JSFIDLE在设置任何事件之前触发单击。你该走了
$('.ArrowNav tr').first().trigger('click');
下面
$('.ArrowNav tr').on('click', function () {
alert('a');
});
另一个问题是,不能将键*函数或焦点函数放在tabel行/列上。您只能聚焦接受用户输入的元素。在设置任何事件之前,您正在触发单击。你该走了
$('.ArrowNav tr').first().trigger('click');
<table>
<tr tabindex="-1" onkeyup="alert(event);">
<td>click me</td>
</tr>
</table>
下面
$('.ArrowNav tr').on('click', function () {
alert('a');
});
另一个问题是,不能将键*函数或焦点函数放在tabel行/列上。您只能聚焦接受用户输入的元素。
<table>
<tr tabindex="-1" onkeyup="alert(event);">
<td>click me</td>
</tr>
</table>
点击我
tabindex
应提供行焦点。
点击我
tabindex
应该提供行的焦点。我把代码放在$('.ArrowNav tr')下。在('click',function(){
上,但是在页面加载中,我不能在没有点击的情况下通过箭头在行之间导航。可以吗?谢谢我把代码放在$('.ArrowNav tr')。在('click',function(){
但在页面加载中,如果没有单击,我无法通过箭头在行之间导航。可以吗?谢谢