2013-03-21 83 views
0

我有一個帶有Telerik RadEditor(富文本框)的ASP.NET頁面。當通過頁面切換時,當用戶進入文本框時,焦點在進入textarea之前被設置爲各種工具欄圖標。我加了一些jQuery的一個頁面設置窗體上按Tab鍵出來的最後一個單元格的時候將重點放在文本區域:檢測某個元素何時要獲得焦點

$('input[type=text][id*=tbCost]').keydown(function (e) { 
    var keyCode = e.keyCode || e.which; 
    if (keyCode == 9) { //If TAB key was pressed 
     e.preventDefault(); 
     var editor = $('body').find("<%=RadEditor1.ClientID%>"); //get a reference to RadEditor client object 
     editor.setFocus(); //set the focus on the the editor 
    } 
}); 

我正在尋找一種方式來實現在控制這個功能,因此,它會無論它在哪個頁面上工作。例如,在上面的代碼中,僅當用戶正在跳出tbCost單元格時才設置焦點。我希望能夠在用戶選中工具欄項目時將焦點設置到文本區域。

有什麼方法可以檢測到什麼時候一個元素是即將獲得的重點?我知道我可以看到一個元素的焦點是,但我想不出一種實現此功能的方法。

感謝

解決方案:

如果任何人在未來有同樣的問題,並希望有一個例子,這裏是我使用的代碼:

$(document).ready(function() { 
    $('.reToolCell').focusin(function() { 
     var editor = $('body').find("<%=RadEditor1.ClientID%>"); 
     editor.setFocus(); 
    }); 
}); 
+0

爲什麼不設置重點是什麼? – Dom 2013-03-21 20:10:35

+1

你可以使用JQuery的「綁定」或「on」方法將此特定代碼綁定到所有輸入[type = text]元素 – rnirnber 2013-03-21 20:16:12

+0

@rnirnber我認爲使用'on'可以工作。 ('.reToolCell')獲得焦點時,我可以做這樣的事情來轉移焦點嗎?:'('focus',function(){var editor = $(this) .find(「<%= RadEditor1.ClientID%>」); editor.setFocus();});' – 2013-03-21 20:29:11

回答

2

您可以考慮結合專注於工具欄圖標並將焦點重定向到文本區域。雖然這可能會有意想不到的副作用,如果用戶試圖選中這些工具以便使用它們。

+1

我同意這可能會導致問題,如果用戶試圖將焦點標籤到工具欄,但它看起來像這將整體工作。謝謝! – 2013-03-21 20:44:08

0
//on focus eventHandler for all your icons that calls a function 


    #('.elementtype, class or a generic way of identifying the icons'.onfocus(myFunction(this)) 

//功能把你的元素的參數,移動到下一個同級元素,並將重點放在`KEYUP()`

 myFunction = (element) { 
     element.next().focus(); 
    }