Jquery mobile jQuery移动默认选项卡

Jquery mobile jQuery移动默认选项卡,jquery-mobile,Jquery Mobile,我想在jQuery Mobile中设置一个默认选项卡 我的源代码: <div data-role="tabs" id="tabs"> <div data-role="navbar"> <ul> <li><a href="#one" id="tabId1" data-ajax="false">on

我想在jQuery Mobile中设置一个默认选项卡

我的源代码:

<div data-role="tabs" id="tabs">
  <div data-role="navbar">
    <ul>
      <li><a href="#one" id="tabId1" data-ajax="false">one</a></li>
      <li><a href="#two" data-ajax="false">two</a></li>
      <li><a href="ajax-content.html" data-ajax="false">three</a></li>
    </ul>
  </div>
  <div id="one" class="ui-body-d ui-content">
    <h1>First tab contents</h1>
  </div>
  <div id="two">
    <ul data-role="listview" data-inset="true">
        <li><a href="#">Acura</a></li>
        <li><a href="#">Audi</a></li>
        <li><a href="#">BMW</a></li>
        <li><a href="#">Cadillac</a></li>
        <li><a href="#">Ferrari</a></li>
    </ul>
  </div>
</div>

$("#tabs").tabs({ active: 0 });
它工作了,但没有背景色,因为第一个选项卡实际上没有被单击

我想在登录时设置带有背景的默认选项卡


要设置活动选项卡,请尝试:

$( "#tabs" ).tabs("option", "active", 1);
这是一张工作票


更新:选项卡按钮上的蓝色背景来自类ui btn活动。将此类添加到按钮中,或者不设置活动选项卡,而是在相应按钮上触发单击事件:

我已在第一个选项卡中添加了class=ui btn active

<div data-role="navbar">
    <ul>
        <li><a href="a.html" class="ui-btn-active">One</a></li>
        <li><a href="b.html">Two</a></li>
    </ul>
</div><!-- /navbar -->
我已经在pagecreate事件中输入了上述行

$(document).on("pagecreate", "#homepage", function(event) {        
    $('[data-role="tabs"] a:first').each(function() {
      $(this).click();
    });
 });
在上面的行中,homepage是我的页面id,pagecreate是jquery mobile的事件,它在页面HTML时触发


我发现上述现有解决方案存在以下问题:

@ezanker的一个显示了内容,但没有将选项卡按钮设置为活动状态 @Devendra Chhaiya点击了选项卡内容包含的任何第一个链接!:- 我还发现,当返回到该页面时,该选项卡没有保持选中状态,所以我过去也解决了这个问题。 还有一个问题,页面加载到标签内容,所以我不得不 此外,是的,还有更多:-我想根据特定页面的要求选择一个特定选项卡,因此我添加了一个类,在从服务器生成页面时选择此选项卡。 因此,我修改了@Devendra Chhaiya的一个,只单击实际的选项卡按钮,而不单击任何选项卡内容,保持选项卡处于选中状态,并防止内容加载到选项卡区域。我必须将触发器从pagecreate移动到pageinit才能工作:

/*
 * https://stackoverflow.com/questions/13837304/jquery-ui-non-ajax-tab-loading-whole-website-into-itself/17384908#17384908
 */
jQuery(function () {
    jQuery('base').remove();
    jQuery("#tabs").tabs();
});

$(document).on('pageinit', function () {

    console.log('pageinit');

    /*
    * Ensure the correct tab of a set is selected (and only once)
    * https://stackoverflow.com/questions/25336233/jquery-mobile-default-tab/64080164#64080164
    */
    $('[data-role="tabs"] [data-role="navbar"] ul li.select-this-tab').each(function () {
        console.log('Clicking tab');
        $(this).removeClass("select-this-tab").find("a").click();
    });

    /*
     * Ensure a tab REMAINS selected when coming back to that page.
     * https://stackoverflow.com/questions/16752704/tab-active-state-in-jquery-mobile/23725612#23725612
     */
    $('div[data-role="tabs"] [data-role="navbar"] a').click(function (e) {
        e.preventDefault();
        $('div[data-role="tabs"] [data-role="navbar"] .ui-btn-active').removeClass('ui-btn-active ui-state-persist');
        $(this).addClass('ui-btn-active ui-state-persist');
    });

您可以删除console.log行,您可以使用它来证明代码实际触发。

我知道它是选项卡2上的默认值,但没有蓝色背景,如果您单击任何选项卡,您将看到我想要设置默认选项卡,并使用背景色,就像您单击选项卡一样。您可以触发单击按钮:或添加ui btn活动类:
 <div data-role="tabs" id="tabs">
        <div data-role="navbar">
            <ul>
                <li><a href="#one" id="tab-one" data-ajax="false">Default</a></li>
 $(document).on("pagecreate", function (event) {

            $('#tab-one').trigger('click');
        });
/*
 * https://stackoverflow.com/questions/13837304/jquery-ui-non-ajax-tab-loading-whole-website-into-itself/17384908#17384908
 */
jQuery(function () {
    jQuery('base').remove();
    jQuery("#tabs").tabs();
});

$(document).on('pageinit', function () {

    console.log('pageinit');

    /*
    * Ensure the correct tab of a set is selected (and only once)
    * https://stackoverflow.com/questions/25336233/jquery-mobile-default-tab/64080164#64080164
    */
    $('[data-role="tabs"] [data-role="navbar"] ul li.select-this-tab').each(function () {
        console.log('Clicking tab');
        $(this).removeClass("select-this-tab").find("a").click();
    });

    /*
     * Ensure a tab REMAINS selected when coming back to that page.
     * https://stackoverflow.com/questions/16752704/tab-active-state-in-jquery-mobile/23725612#23725612
     */
    $('div[data-role="tabs"] [data-role="navbar"] a').click(function (e) {
        e.preventDefault();
        $('div[data-role="tabs"] [data-role="navbar"] .ui-btn-active').removeClass('ui-btn-active ui-state-persist');
        $(this).addClass('ui-btn-active ui-state-persist');
    });