Выбор Вкладки jQuery с помощью параметра в URL

Во-первых, посмотрите комментарии ниже, чтобы узнать, почему ваш пример кода не может работать в PPT:

Sub ChangeCharts()
    ' PPT has no ChartObject type  
    Dim myChart As ChartObject
    ' PPT has no ActiveSheet object
    For Each myChart In ActiveSheet.ChartObjects
    myChart.Chart.ApplyChartTemplate ( _
    "Name\Users\Name\Library\Group Containers\UBF8T346G9.Office\User Content\Chart Templates\1.crtx")
    Next myChart

End Sub

Предполагая, что вы запускаете это из PPT, вам понадобится что-то вроде: [ 113]

Sub ChangeCharts
  Dim oSl as Slide
  Dim oSh as Shape

  For Each oSl in ActivePresentation.Slides
    For Each oSh in oSl.Shapes
      Select Case oSh.Type
        Case Is = 3  ' Chart created in PPT
          ' apply the template here
          With oSh.Chart
            .ApplyChartTemplate "drive:\path\template_name.crtx"
          End with  ' the chart
        ' Other case statements as needed to
        ' cover embedded/linked OLE objects 
        ' that are Excel charts
      End Select
    Next   ' oSh/Shape
  Next  ' oSl/Slide
End Sub
20
задан Peter Mortensen 30 May 2010 в 15:06
поделиться

5 ответов

Используя http://www.mathias-bank.de/2007/04/21/jquery-plugin-geturlparam-version-2 :

$(document).ready(function(){
    var param = $(document).getUrlParam('selectedTab');
    $('#menu').tabs('select', param);
});

От документация :

#select

Подпись:

.tabs( 'select' , [index] )

Выбор вкладка, как будто это было нажато. Вторым аргументом является основанный на нуле индекс вкладки, которая будет выбрана или идентификационный селектор панели, вкладка связана с (href идентификатор фрагмента вкладки, например, хеш, точки к идентификатору панели).

22
ответ дан 29 November 2019 в 23:17
поделиться

Следующая ссылка плагина jQuery кажется возможным кандидатом на решение, поскольку она предоставляет Вам URL и составные части. Вы затем смогли бы соответствовать значению или индексу вкладки, которую Вы хотите выбрать или идентификатором или классом через селектор jQuery:

http://www.oakcitygraphics.com/jquery/jqURL/jqURLdemo.html?var1=1&var2=2&var3=3

1
ответ дан 29 November 2019 в 23:17
поделиться

я предполагаю, что достаточно загрузить историю и заставить это работать.

0
ответ дан 29 November 2019 в 23:17
поделиться

У меня немного другой подход, который не обязательно полагается на встроенную функцию select(), но использует плагин livequery:

http://plugins.jquery.com/project/livequery/

который является более мощной версией функции jQuery live. Она может легко связывать будущие элементы, соответствующие запросу.

Предположим, у вас есть следующая структура вкладок:

<div class="Tabs">
<ul class="nav">
<li><a id="tab1">Link 1</a></li>
<li><a id="tab2">Link 2</a></li>
<li><a id="tab3">Link 3</a></li>
</ul>
..
..
</div>

в идеале, вы хотите получить такую структуру URL:

mydomain/mypage?tab=tab2

это становится довольно сложным, потому что метод select() поддерживает только целочисленные индексы, а что произойдет, если вы поменяете вкладки местами?

Предположим, что вы можете получить параметр url в переменную, как указано выше, чтобы сделать следующее:

Сначала вы находите целевой элемент и добавляете к нему класс:

jQuery('a#' + param).addClass('selectMe');

Затем вы привязываете к элементу функцию livequery:

jQuery('.ui-tabs-nav a.selectMe').livequery(function(){
 jQuery(this).removeClass('selectMe').triggerHandler('click');
});

Это будет соответствовать ему только после того, как он будет изменен на вкладке и практически "кликнут" на него.

Затем вы можете вызвать вашу функцию tabs без параметров:

jQuery(".Tabs").tabs();

и как только она будет завершена, вкладка автоматически будет нажата и выбрана!

Еще лучше, вы можете привязать создание вкладок к самому livequery:

jQuery(".Tabs").livequery(function(){
    jQuery(this).tabs();    
});

так что любые элементы с классом '.Tabs' будут автоматически преобразованы во вкладки при загрузке, сейчас или в будущем!

1
ответ дан 29 November 2019 в 23:17
поделиться

Jquery-UI дает вам это (почти) бесплатно: используйте внутренние ссылки. И это лучше, чем использовать уродливые параметры get.

Передача http://my.site.org/mypage/#foo-tab в вашем навигаторе автоматически выберет вкладку с контейнером, имеющим id = "foo-tab".

Хитрость заключается в том, чтобы добавить событие для обновления URL-адреса при выборе вкладки, чтобы при перезагрузке вы не потеряли текущую вкладку:

   $(document).ready(function () {
        $("#tabs").bind('tabsselect', function(event, ui) {
            window.location.href=ui.tab;
        });
    });
26
ответ дан 29 November 2019 в 23:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: