【问题标题】:Jquery UI Tabs: Help getting started with eventsJquery UI 选项卡:帮助开始处理事件
【发布时间】:2009-07-27 14:28:45
【问题描述】:

我已经阅读了 Jquery UI 选项卡 (1.7) 的文档,并且我相信在单击特定选项卡时会发生特定事件方面,我对 Jquery 选项卡有点不知所措。

我的基本选项卡工作正常,我只想在选择特定选项卡时将焦点设置在文本框上。

UI Docs 声明您通过以下方式处理选择事件:

$('.selector').tabs({
   select: function(event, ui) { ... }
});

我不完全确定上述内容是什么意思。我在 stackoverflow 上阅读了其他一些示例,特别是 example。不幸的是,该演示不再适用于提供的答案。

我当前使用 PHP 创建和选择特定选项卡的代码是:

$("#tabs").tabs();
$("#tabs").tabs('option', 'selected', <?php echo $tabID-1; ?>);

效果很好。我想添加在选择第 4 个选项卡时将焦点设置到文本框的功能,类似于:

$('#subject').focus(); 

【问题讨论】:

    标签: jquery-ui


    【解决方案1】:

    您所做的是给 $('.selector').tabs() 函数一个关联数组(在 JavaScript 中它只是称为对象)。重要的是,JavaScript 正在使用这样一个事实,即您可以非常广泛地将函数分配给变量。如果你更容易阅读和理解,你可以试试这个:

    var tab_select_function = function(event, ui)
    {
        // Objects available in the function context:
        // ui.tab     // anchor element of the selected (clicked) tab
        // ui.panel   // element, that contains the selected/clicked tab contents
        // ui.index   // zero-based index of the selected (clicked) tab
        alert("Tab with index " + ui.index + " clicked!");
    };
    
    $('#tabs').tabs({
       select: tab_select_function
    });
    

    【讨论】:

    • 达夫,我实施了你的建议,我正朝着正确的方向前进。在 tab_select_function 中,我添加了一些代码来获取选择了哪个选项卡,现在只是提醒它。我遇到的问题是它正在提醒我来自的标签索引,而不是我刚刚点击的实际标签! var tab_select_function = function(event, ui) { var $tabs = $('#tabs').tabs(); var selected = $tabs.tabs('option', 'selected');警报(选中); };
    • 我从文档中复制了一些描述,并且 ui 对象实际上应该作为参数提供您需要的内容。
    • 仅供参考:以防万一其他人偶然发现:您实际上无法通过使用 UI 选项卡的内置选择事件将焦点设置到输入框。在启用/显示选项卡之前触发选择事件。而不是使用 select 事件,您需要使用 show: event.
    猜你喜欢
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多