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(){
但在页面加载中,如果没有单击,我无法通过箭头在行之间导航。可以吗?谢谢