在使用JQuery追加ajax成功响应后如何关注div

时间:2016-11-28 10:05:18

标签: javascript jquery ajax

我有一个像下面这样的ajax响应回调。

    $.ajax({
          type: "POST",
          url: "search.php?ajaxrequest=yes",
          data: query_string
        }).done(function( data ) {
            $("#wtb_wm_listing").html(data);
            $("#wtb_wrapper_middle_inner").focus();
  });

我将返回的数据附加到div“ wtb_wm_listing ”中,我将其放入主div“ wtb_wrapper_middle_inner

在追加数据之后,我想关注主要的div“ wtb_wrapper_middle_inner

但是当我尝试聚焦时,它对我不起作用,当我点击我的鼠标进入div并尝试按下div页面时,不按键盘箭头滚动。

在这种情况下,当我尝试在该div上使用 hide() addClass()时,它会为我工作。

鼠标滚动对我来说是悬停div。

任何人都可以帮我解决这个问题。

注意:

当我在页面加载时关注该div时,当时它运行良好,但是当我将一些ajax响应数据附加到该div时,那个时间只是它不起作用。

4 个答案:

答案 0 :(得分:1)

假设#wtb_wrapper_middle_inner位于#wtb_wm_listing内,您基本上删除#wtb_wm_listing内的所有内容以替换为data,这就是#wtb_wrapper_middle_inner不存在的原因。

您可以尝试使用append()

jQuery append() method

jQuery html() method

答案 1 :(得分:0)

您无法聚焦容器/ div元素。请在此处阅读有关某些用例的文档:https://api.jquery.com/focus/如果您想要关注该div中的特定输入,则可以执行此操作。但是你无法专注于div。虽然您可以为任何元素添加tabindex。这可以模拟焦点。

答案 2 :(得分:0)

作为jQuery docs say about the focus method

  

焦点事件在获得焦点时发送到元素。这个事件   隐含地适用于有限的一组元素,例如形式   元素(,等)和链接()。在最近   在浏览器版本中,事件可以扩展为包含所有元素   通过显式设置元素的tabindex属性来显示类型。一个   element可以通过键盘命令获得焦点,例如Tab键,或   通过鼠标点击元素。

Anyways, you can focus a div by adding a tabindex并查看您的密钥滚动是否有效。

请参阅:http://snook.ca/archives/accessibility_and_usability/elements_focusable_with_tabindex

  

tabindex值可以允许一些有趣的行为。

     
      
  • 如果给定值为“-1”,则元素无法选项卡,但焦点可以   以编程方式给予元素(使用element.focus())。
  •   
  • 如果给定值为0,则可以通过键盘对焦元素   落入文件的标签流程。
  •   
  • 大于0的值会创建一个优先级,其中1是最重要的。
  •   

答案 3 :(得分:0)

这就是它的工作原理

    window.location.hash = '#wtb_wrapper_middle_inner';
#wtb_wrapper_middle_inner{
margin-top:500px;  
height:50px; 
  width:50px;
  background-color:red;
}
<div id='wtb_wrapper_middle_inner'></div>