6

此問題與Internet Explorer 10有關,這是我正在測試的內容,並不會影響我的當前版本Firefox or Chrome在IE10中導航回頁面時,會再次出現孤立的jQuery Datepicker

步驟在Internet Explorer中

  1. 導航複製到:http://jqueryui.com/datepicker/
  2. 點擊日期字段顯示datepicker
  3. 雖然它的開放,導航到沿側您IE窗口中的另一個應用程序窗口然後回到IE並點擊datepicker面板中的某個空白區域。
  4. 您應該看到datepicker消失並重新出現,我相信這一點必須與上次控制焦點的控制相關,並在您點擊時重新獲得焦點。

我已經注意到:

  • 如果你最小化和最大化IE,它不如果您執行相同的步驟,無需點擊到另一個應用程序,直接點擊進入發生
  • 它不會發生
  • 它一致地工作,如果你有Windows /應用並排或在2臺顯示器上

儘管我可以接受這是一個小問題,並且看起來並不像一個bug,但在我們的應用程序中,datepicker顯示爲彈出窗口的一部分,在您點擊後消失它。

日期選取器隨着父容器:

date picker with container

孤立的日期選擇器再次出現:

orphaned date picker

我已經試過:

與該datepicker暗示下面的知名度,這是我測試過我見過的帖子:

$("#my-datepicker-div").datepicker('destroy'); 
$("#my-datepicker-div").datepicker('disable'); 

即使我很高興地忽略這個邊緣情況下,有人提出一個bug我需要修復。我只是不確定還有什麼要嘗試。

回答

4

我能夠在IE 10來修復(必須然後關閉它刷新,所以有一點閃爍的)致電:

$("#datepicker").datepicker("hide"); 
的功能

時調用股利關閉(在此快速示例,當您返回窗口時,您可以點擊div邊)。示例小提琴在這裏:http://jsfiddle.net/anyuG/

要重現您所描述的IE 10的行爲,只需在disablepopup()函數中註釋掉該行並且您可以重現孤立的日期選擇器窗口。如果您將實際示例作爲小提琴發佈,我們可以使用它。

抓起這裏彈出DIV例如:http://istockphp.com/jquery/creating-popup-div-with-jquery/

UPDATE

另一種方式來處理這個問題,並且看起來更好一點是使的$(window).blur()$(window).focus()功能的用戶。這看起來在我看來不行了,請注意窗口休假結束後,如果您在白框內單擊重新打開,並重新打開,但如果你點擊白框以外的所有併攏:

$(window).blur(function(e) { 
    $("#datepicker").datepicker("hide"); 
}); 

更新小提琴。與.focus()一起玩,以確定您的偏好的最佳組合,你應該很好。也可能只想檢測IE 10,只在該瀏覽器中運行此代碼。

小提琴:http://jsfiddle.net/78252/1/

+0

謝謝你的小提琴,它正確地再現了問題,當行註釋掉。雖然您的解決方案確實關閉了日期選擇器,但在關閉之前它不會閃回備份。 – Tanner

+0

同意,我不知道我有一個更好的解決方案,因爲它說的是關於網頁的行爲方式(事件的順序)。 – Matthew

+0

再想一想。查看更新的答案。 – Matthew

相關問題