2012-05-24 25 views
8

Sekmeli bir ekranım var ve form gönderildikten ve geri dönüş geçerli olduğunda seçilen sekmede bir tıklamayı tetiklemek istiyorum. İşte html bir parçası:jquery sekmesinin etkin sekmesinde ('click') tetikleme

<ul id="tabUL" class="tabs js-tabs same-height"> 
    <li class="current"> 
     <a class="tabLink" href="#tabProducts" data-url="/bla/bla">Products</a> 
    </li> 
</ul> 

Başarım komut: Bu iş olmuyor görünüyor ... Herhangi bir yardım takdir

success: function(data, textStatus, XMLHttpRequest) { 
    $('#tabUL').find('li.current a').trigger('click'); 
} 

:) Saygılar Andrea

+0

yapmanız üzerine tıklayarak ne bekliyoruz? –

+0

$ ('li.current') 'ı deneyin. Parent(). Trigger (' click '); – Imdad

+0

herhangi bir hatayı bildiren js konsolunuz mu? – fcalderan

cevap

3

yeniden yüklemek istiyorsanız sekme ile programlı olarak aşağıdaki gibi Jquery Sekmesi API yardımcı programını kullanmanız önerilir: Bu, ilk sekmeyi etkinleştirir ve sonra ikinci sekmeyi etkinleştirir, oldukça basittir ve ayrıca doğrudan tıklattığınızda normal olarak yükseltilecek olayları da yükseltir.

$("#myTabs").tabs("option", "active", 0); 

$("#myTabss").tabs("option", "active", 1); 

Ayrıca rezervasyon yapmaya programlama yoluyla kullanıcı olayı çağırmak için ben mümkün olmadığına inanıyorum click olayını kendisi (tetiklemek için çalışmak yerine herhangi işlemleri

$("#myTabs").on("tabsactivate", function(event, ui) { 
    // your custom code on tab click 
}); 
+0

Bu, her sekmenin bir sürü içeriğe sahip olmasından dolayı iyi bir fikir gibi görünmüyor ... – cwhisperer

+0

Daha iyi bir öneri yok – Imdad

+0

bile çalışmıyor ... – cwhisperer

0

gerçekleştirmek için sekmeyi aşağıda gibi aktif olay yakalayabilirsiniz Bu bağlam) sana tıklama etkinliğini çağrılacak vardır fonksiyonunu tetiklemek olduğunu göstermektedir, sen a[href=""] seçici kullanılarak triggerHandler

22

deneyin içine bakmak isteyebilirsiniz:

$('#tabUL a[href="#tabProducts"]').trigger('click'); 


eyleme geçtiğini göstermek için birlikte bir jsfiddle demo koydu, ben programlı kilidini önce ilk sekmede girilebilir zorunlu bilgileri eksik gerektirecek onun tırnakları zorluyorum zaman ne sıklıkta beri diğer sekmeleri gizlemek isteğe bağlı diğer sekmeleri ...

Düzenleme İşte jsfiddle içeriği olan:

HTML

<div id="tabs"> 
    <ul> 
    <li><a href="#tab0">Address</a></li> 
    <li><a href="#tab1">Shipping</a></li> 
    <li><a href="#tab2">Parts</a></li> 
    <li><a href="#tab3">Datasheets</a></li> 
    </ul> 
    <div id="tab0"> 
     <h1>This is the first tab (0)</h1> 
    </div> 
    <div id="tab1"> 
    <h1>This is the second tab (1)</h1> 
    </div> 
    <div id="tab2"> 
    <h1>This is the third tab (2)</h1> 
    </div> 
    <div id="tab3"> 
    <h1>This is the fourth tab (3)</h1> 
    </div> 
</div> 
<br/> 
Select the 
<select id="tabSelect"> 
    <option value="0">1st</option> 
    <option value="1">2nd</option> 
    <option value="2">3rd</option> 
    <option value="3">4th</option> 
</select>Tab and 
<input type="checkbox" id="tabHide" checked="checked" /> Lock the Others 

sekmesi zaten seçili ise jQuery

$(document).ready(function() { 
    $('#tabs').tabs(); 
    $('#tabSelect').change(function() { 
     //pass empty array to unlock any locked tabs 
    $('#tabs').tabs({disabled: []}).find('a[href="#tab' + $(this).val() + '"]').trigger('click'); 

    if ($('#tabHide').prop('checked')) { 
     //hide will be an array like [0,2,3] 
     var hide = Array(); 
     $('#tabs li').not('.ui-tabs-active').each(function() { 
     hide.push($(this).index()); 
     });  
     $('#tabs').tabs({disabled: hide}); 
    } 
    }); 
});