我有一個jquery ui對話框,帶有動態加載的標籤/帶有內容的JSON。由於複雜性,我無法發佈小提琴或相關代碼(代碼太多)。以編程方式移除焦點?
發生什麼事是,當對話框打開時,您可以選中對話框中的元素,直到第一個選項卡。之後,你無法通過其他任何地方。焦點鎖定在該選項卡上,即使您在其他位置單擊,該焦點也會鎖定在該選項卡上。
我無法找到此問題的實際原因。
那麼,我將如何以編程方式刪除焦點?
我有一個jquery ui對話框,帶有動態加載的標籤/帶有內容的JSON。由於複雜性,我無法發佈小提琴或相關代碼(代碼太多)。以編程方式移除焦點?
發生什麼事是,當對話框打開時,您可以選中對話框中的元素,直到第一個選項卡。之後,你無法通過其他任何地方。焦點鎖定在該選項卡上,即使您在其他位置單擊,該焦點也會鎖定在該選項卡上。
我無法找到此問題的實際原因。
那麼,我將如何以編程方式刪除焦點?
我會加載一些警報來查找JS失敗的地方。例如。
alert(1);
var a = 10;
alert(2);
var b = null;
alert(3);
a += 5;
alert(4);
b.hello();
alert(5);
顯然,在這個例子中,最後的警報將是4
這不是一個很好的做法,但每個人都在某些時候做。
警報不是正確的調試方式,尤其是對鼠標移動,懸停或類似事件有反應時。現在幾乎所有瀏覽器都有一個調試控制檯,您可以使用'console.log(...);' – ThiefMaster
來寫入調試控制檯。調試的正確方法是幫助您以最有效的方式跟蹤錯誤。警報在調試中具有非常有用的作用,因爲它們暫停執行。就在昨天,我正在調試一個令人毛骨悚然的jQuery動畫,'console.log()'沒有用於查明這個視覺故障來自哪裏,因爲它發生得太快了。添加警報會在每個步驟中暫停動畫,並讓我準確找到毛刺來自哪裏。你說得對,OPs方法不是正確的方法,在那個例子中'console.log()'更好,但'alert()'在調試中有一席之地。 – Gavin
@Gavin和其他人。最好使用'debugger'命令(至少在支持它的瀏覽器中)。它暫停執行,但仍然可以使用開發人員工具來檢查發生了什麼。有了警報,你所得到的只是當前狀態的視覺快照,這並不總是有幫助的。 – stafffan
嘗試觸發你不想失去重點領域的blur
事件。
你使用什麼瀏覽器?在IE中,你有時會因爲沒有理由而失去焦點。 – Hossein
TAB的按鍵事件是否被覆蓋以手動管理焦點切換(如顯示模式對話框時可能會這樣做)? –
我看到一個按鍵事件的唯一地方是keydown函數能夠將向下箭頭按到標籤的內容中。它遍佈所有瀏覽器。 – Jason