我有一系列DIV元素,當點擊,觸發DOMWindow打開事件的。那裏沒問題。.focus()不工作一DOMWindow()[JQuery的]
然後我不得不添加鍵盤輔助功能。 DOH !!
我加的tabindex屬性的DIV,它允許用戶使用Tab鍵從一個DIV到下了,我增加了一個按鍵處理,處理Enter鍵。那裏沒問題。
我遇到的問題是試圖將焦點設置回用戶在打開Enter鍵並打開DOMWindow時所處的div(以便它們可以繼續切換到系列中的下一個DIV) 。
我嘗試添加一個功能存在domWindow的「functionCallOnClose」設置,但似乎並沒有做任何事情。
這裏是一個代碼段。這是在點擊按鍵事件綁定到具有「timeEntry」的類名稱的所有div:
$(".timeEntry").live("click keypress", function() {
// bunch of code here to set up the DOMWindow...
$.openDOMWindow({
// bunch of settings here...
functionCallOnClose: function() {
// this doesn't work
// 'DivId' is the object (DIV) that was clicked on
$(DivId).focus();
}
});
});
有沒有人有一個線索,爲什麼我似乎無法讓焦點回到後原來的DIV點擊或按鍵事件被解僱和處理?
我意識到這是一個非常模糊的問題,所以我把它扔在那裏,希望其他人閱讀,這是使用jQuery DOMWindow和處理點擊按鍵事件(或至少知道如何)
:O)
編輯:做一些進一步的調試後,似乎有與jQuery正從DIV標籤的tabIndex屬性的問題。當我認爲我的頁面的源代碼,我可以看到的屬性:
<div id="someDiv" class="someClass" tabindex="1"> ... </div>
然而,當我嘗試使用jQuery獲取屬性,它不會出現在那裏。
此代碼返回「未定義」
var tabindex = $("#someDiv").attr("tabindex");
但是,如果我設置使用jQuery的屬性,我可以轉身和檢索:
// set the tabindex
$("#someDiv").attr("tabindex", "1");
// now this returns "1"
var tabindex = $("#someDiv").attr("tabindex");
有沒有人有一個線索,爲什麼jQuery的沒有按在HTML中設置時返回tabindex屬性,但它會在使用代碼動態設置後返回?
希望這是有道理...
調用.focus()調用是否在腳本的其他地方使用div?我注意到在.focus()文檔中,它可能不適用於舊版瀏覽器中的非表單元素,即使使用tabindex。此外,你有沒有嘗試在你的functionCallOnClose中放置一個alert,以確保它實際上正在執行? – Ender 2010-10-26 22:20:45
是的,焦點()在別處工作,是的,我知道該函數正在執行,因爲我可以使用調試器進入它。奇怪的是,我似乎無法使用jQuery從div中獲取tabindex屬性。我可以在HTML源代碼中看到它,所以我知道它在那裏,但是當我嘗試訪問它時,jQuery返回「undefined」。我認爲這是我的問題的根本原因。 – camainc 2010-10-27 18:14:26