ben
ben

Reputation: 29817

With jQuery UI tabs, how can I run code after a click on a tab?

With jQuery UI tabs, you can use the select method to run code when a tab is clicked:

$( ".selector" ).tabs({
   select: function(event, ui) { ... }
});

But the code is run before the just clicked tab has been loaded. I need to run code after new tab has been loaded. How can I do this? Thanks for reading.

Upvotes: 8

Views: 23324

Answers (4)

buycanna.io
buycanna.io

Reputation: 1204

HTML

<div id="tabs">
    <ul>
        <li><a href="#job_information_tab">Job Information</a></li>
    </ul>
    <div id="job_information_tab">
        [content]
    </div>
</div>

JS

$('a[href="#job_information_tab"]').on('click', function() {
   alert("Don't tickle me! I am gonna pee!");
});

Upvotes: 0

Darren
Darren

Reputation: 9519

API HAS CHANGED. This event is now "activate"/"tasbactivate"; see http://api.jqueryui.com/tabs/#event-activate

----- OLD Answer below -----------

Based on the question it's the tabsshow (not the tabsload) event that is desired...event is triggered when a tab is shown.

Code examples: ( from http://jqueryui.com/demos/tabs/ )

Supply a callback function to handle the show event as an init option.

$( ".selector" ).tabs({
   show: function(event, ui) { ... }
});

Bind to the show event by type: tabsshow.

$( ".selector" ).bind( "tabsshow", function(event, ui) {
  ...
});

The event is useful if you want to set focus on control or similar.

Upvotes: 12

JasonWoof
JasonWoof

Reputation: 4196

looks like you could bind to tabsload or tabsshow:

http://jqueryui.com/demos/tabs/#Events

example

$('#example').bind('tabsshow', function(event, ui) { ... });

Upvotes: 6

Cubed Eye
Cubed Eye

Reputation: 5631

$( ".selector" ).tabs({
   load: function(event, ui) { ... }
});

from http://jqueryui.com/demos/tabs/

Upvotes: 7

Related Questions