2014-10-22 67 views
1

我正在嘗試做類似於this page正在做的事情。Redactor - 「插入鏈接」對話框中的輸入元素無法獲得焦點

唯一的區別是我使用的jQuery UI對話框是模態的。

我嘗試編輯頁面中的腳本,使jQuery UI對話框模態。

$("#dialog-modal").dialog(
{ 
    modal: true, // added this line to make dialog modal 
    width: 600, 
    height: 400, 
    open: function(event, ui) 
    { 
     var textarea = $('<textarea style="height: 276px;">'); 
     $(textarea).redactor({ 
      focus: true, 
      maxHeight: 300, 
      initCallback: function() 
      { 
       this.code.set('<p>Lorem...</p>'); 
      } 
     }); 
    } 
}); 

然後我點擊了插入鏈接按鈕(從工具欄右側的第三個按鈕)。這顯示了另一個帶有窗體的jQuery UI模式對話框。

我注意到我無法獲得文本字段的焦點。我無法輸入任何內容。

如果我不創建第一個對話框模式,代碼就可以正常工作。

任何想法如何規避這一點?

回答

-1

我遇到了同樣的問題。此行爲是jQuery UI在文檔上處理focusin.dialog事件的結果,並將焦點放回堆棧中的最後一個jQuery UI對話框(使用選擇器".ui-dialog:visible:last")。我通過調用這個代碼解決了這個問題之後創建我的模態對話框:

setTimeout(function() { 
    $(document).unbind("focusin.dialog"); 
}, 100); 

我用setTimeout,因爲jQuery UI也使用setTimeout此事件綁定。我能夠解決它,感謝這個答案:jQuery UI Focus Stealing。我也嘗試升級到jQuery UI 1.11.4,但這並沒有解決問題。