tbody焦点不起作用

时间:2017-06-05 01:02:05

标签: javascript jquery scroll focus

我有以下表结构:

<table>
 <tr>
  <th> </th>
  <th> </th>
  <th> </th>

</tr>
<tbody id="page-1">
 <tr>
    <td>  </td>
    <td>  </td>
    <td>  </td>    
</tr>

<tr>
    <td>  </td>
    <td>  </td>
    <td>  </td>    
</tr>
<tr>
    <td>  </td>
    <td>  </td>
    <td>  </td>    
</tr>
<tr>
    <td>  </td>
    <td>  </td>
    <td>  </td>    
</tr>
</tbody>
<tbody id="page-2">
 <tr>
    <td>  </td>
    <td>  </td>
    <td>  </td>

</tr>
<tr>
    <td>  </td>
    <td>  </td>
    <td>  </td>    
</tr>
<tr>
    <td>  </td>
    <td>  </td>
    <td>  </td>    
</tr>
</tbody>
</table>

我已尝试使用以下jquery代码按tbody滚动到特定的id,如:

page = 1;
$("#page-"+page).focus() 

上述代码无法滚动到指定的tbody。我还尝试了以下内容以获得第一个tr,但也失败了:

page = 1;
$("#page-"+page+":first-child").focus()

我要提到的最后一件事是tbody是通过ajax请求加载的,console.log($("#page-"+page).html())工作正常并打印出tbody

的html

1 个答案:

答案 0 :(得分:0)

我犯了错误。对于focus来说tbody不是合适的事件,换句话说就是没有关注点。解决方案是Run ScrollTop with offset of element by ID并使用:

$('html, body').animate({
                 scrollTop: $('#page-'+page).offset().top -100
                }, 2000);