2013-04-16 13 views
16

Potrzebuję wybrania funkcji zakładki specyficznej dla kart jQuery po kliknięciu przycisków html. Używam pliku jquery.1.9.1.js i jquery-ui-1.10.2.custom.js. Zaimplementowałem poniższy kod, ale nie działa on dla mnie.Błąd środowiska wykonawczego Microsoft JScript: brak takiej metody "wybierz" dla instancji widgetu tabulatorów

<script language="javascript" type="text/javascript"> 
$("#ui-tabs").tabs(); 
function SelectTab() { // bind click event to link 
       $('#ui-tabs').tabs('select', 2); // switch to third tab 
       return false; 
      } 
</script> 
<div id="ui-tabs"> 
<ul> 
    <li><a href="#tabs-1">Nunc tincidunt</a></li> 
    <li><a href="#tabs-2">Proin dolor</a></li> 
    <li><a href="#tabs-3">Aenean lacinia</a></li> 
</ul> 
<div id="tabs-1">Tab1 content </div> 
<div id="tabs-2">Tab2 content </div> 
<div id="tabs-3">Tab3 content </div> 
</div><a id="next" class="button-style" href="#" onclick="return SelectTab();">Select Tab</a> 

Problemem jest stwierdzenie $('#ui-tabs').tabs('select', 2); w funkcji SelectTab daje mi błąd Microsoft JScript runtime error: no such method 'select' for tabs widget instance. Normalny wybór zakładek po kliknięciu działa poprawnie. Ale nie działa po wykonaniu z funkcji. Co dzieje się źle w implementacji lub czy brakuje jakiegoś pliku? proszę zasugeruj.

Odpowiedz

47

Nie ma metody select dla kart jQuery UI w tej wersji. Aby funkcja działała poprawnie, musisz zmienić swój kod na;

$('#ui-tabs').tabs("option", "active", 2); 

Proszę przeczytać http://api.jqueryui.com/tabs/#option-active, aby uzyskać więcej informacji na ten temat.

// getter 
var active = $(".selector").tabs("option", "active"); 

// setter 
$(".selector").tabs("option", "active", 1); 

Sprawdź ten mały jsFiddle na przykład działa.

+1

Dzięki Tim B James. Działa świetnie. Jeszcze jedno pytanie: Jak mogę uzyskać wybrany indeks kart w tym kontekście? –

+1

@eraj zobacz zaktualizowaną odpowiedź. –

+0

Ten nie pomógł mi w pierwszej kolejności, ponieważ czytałem szybko i chybiłem, ale w twardy sposób odkryłem, że ta odpowiedź jest poprawna, co daje ładnie zarobioną +1. Dla niewidomych takich jak ja: wyszukaj .tabs ("wybierz", hasło w kodzie zlokalizuj je i zastąp je .tabs ("opcja", "aktywny", –

0

Jeśli chcesz, aby indiviual linki do otwierania klapki na swoim miejscu można skorzystać z poniższego funkcję i wywołać ją z

<div onclick="changeToTab(targetTabNumber)"> mylinkText </div> 

function changeToTab(ID){ 
    var $tabs = $('#tabs').tabs(); 
    $tabs.tabs("option", "active", ID); 
    return false; 
} 

pierwszym celem jest skierowana 0, drugi z 1 i tak dalej. Element div może być wszystkim, co umożliwia onclick oczywiście.

+0

Co nowego w tej odpowiedzi –

+0

Chciałem dać więcej odpowiedzi kompatybilnych z nowicjuszem, chociaż może nie dodać wartości dla frajerów, którzy wiedzieli, jak sobie poradzić z odpowiedzią 1. Wiem, co to jest getter i seter, ale pamiętam czas, kiedy tego nie robiłem. – Max

Powiązane problemy