簡體   English   中英

使用JQuery附加ajax成功響應后如何關注div

[英]How to focus into div after append ajax success response using JQuery

我有一個如下的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頁面。

在這種情況下,當我嘗試在該div上使hide()addClass()起作用時。

將鼠標懸停在div上對我來說是有用的。

誰能幫我解決這個問題。

注意:

當我在頁面加載時關注那個div時,那個時候它工作良好,但是當我在那個div中添加一些ajax響應數據時,那時候只有它不起作用。

假設#wtb_wrapper_middle_inner#wtb_wm_listing內部,則基本上是在#wtb_wm_listing內刪除所有#wtb_wm_listing以替換為data ,這就是為什么#wtb_wrapper_middle_inner不存在的原因。

您可以嘗試使用append()

jQuery append()方法

jQuery html()方法

您不能集中容器/ div元素。 請在此處閱讀有關一些用例的文檔: https : //api.jquery.com/focus/如果該div中有您要關注的特定輸入,則可以執行此操作。 但是你不能集中一個div。 雖然可以將tabindex添加到任何元素。 這樣可以模擬焦點。

正如jQuery文檔所說的focus方法

焦點事件在獲得焦點時發送到元素。 此事件隱式適用於有限的一組元素,例如表單元素(,等)和鏈接()。 在最新的瀏覽器版本中,可以通過顯式設置元素的tabindex屬性將事件擴展為包括所有元素類型。 元素可以通過鍵盤命令(例如Tab鍵)或通過單擊元素來獲得焦點。

無論如何,您可以通過添加一個tabindex來使div聚焦,並查看按鍵滾動是否起作用。

請參閱: http//snook.ca/archives/accessibility_and_usability/elements_focusable_with_tabindex

tabindex值可以允許一些有趣的行為。

  • 如果給定的值為“ -1”,則不能將其制表,而可以通過編程方式(使用element.focus())將焦點賦予該元素。
  • 如果給定值為0,則該元素可以通過鍵盤進行聚焦,並落入文檔的制表流程中。
  • 大於0的值會創建優先級,其中1是最重要的。

這是這樣的

  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> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM