0

运行 jquery 1.9.1 选项卡功能并尝试在选项卡激活时更改背景图像。对 jquery 来说有点新,并决定通过查看 aria-expanded 标记是否已设置为 true 来检测激活的选项卡。如果是这样,我会抓取一个自定义标签,该标签与该标签的图像 url 一起插入(称为 bgimg,例如 bgimg="url(/images/tab1img.png"))并进行更改。但是,似乎在 aria-expanded 为选定选项卡设置为 true 之前,选项卡调用的激活部分中的任何内容都在运行。是这样吗?如果是这样,我如何触发该功能以便在激活新选项卡后运行它?

这是jQuery:

$(window).load(function () {
    $('#tabs').tabs({
        activate: function (event, ui) {
            setBGImg();
        }
    });
    setBGImg();

    function setBGImg() {
        $('.ui-tabs-panel').each(function () {
            if ($(this).attr('aria-expanded') == 'true') {
                $('#backgroundImage').css('background-image', 'url(' + $(this).attr('bgImg') + ')');
            }
        });
    }
});
4

2 回答 2

0

使用 JQuery UI 提供的工具来定位新面板可能会更好。

$('#tabs').tabs({
    activate: function (event, ui) {

        //ui.newPanel lets you target the new Panel
        var panel = ui.newPanel;
        panel.css({'background-color': 'blue'});
    }
});

ui您可以通过参数定位几件事。
- 新面板 - 新标签 - 旧面板 - 旧标签

这是一个FIDDLE,它显示了它的实际作用。

于 2013-08-30T15:14:29.003 回答
0

几乎所有东西都有 jQuery 事件。

您可以在激活选项卡之前设置自定义处理程序,这在此处记录

于 2013-08-30T15:00:18.470 回答