0

我有一个带有 Telerik RadEditor(富文本框)的 ASP.NET 页面。在页面中切换时,当用户进入文本框时,焦点会在进入文本区域之前设置为各种工具栏图标。我在一个页面上添加了一些 jQuery,以便在跳出表单上的最后一个单元格时将焦点设置在文本区域上:

$('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单元格时才会设置焦点。当用户进入工具栏项目时,我希望能够将焦点设置到文本区域。

有什么方法可以检测元素何时将获得焦点?我知道我可以看到一个元素是否有 focus,但我想不出一种方法来实现这个功能。

谢谢

解决方案:

如果将来有人有同样的问题并想要一个例子,这是我使用的代码:

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

2 回答 2

2

您可能会考虑绑定到工具栏图标上的焦点并将焦点重定向到文本区域。尽管如果用户试图将这些工具集中在标签上以使用它们,这可能会产生意想不到的副作用。

于 2013-03-21T20:29:58.783 回答
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))

//该函数获取元素的参数,移动到下一个兄弟元素并设置焦点

     myFunction = (element) {
       element.next().focus();
     }
于 2013-03-21T20:41:44.390 回答