You do not call any ajax in the tab selection.
if you call the contents of the tab using ajax to be displayed.
I checked this with a small example added below.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Load Demo</title> <link rel="stylesheet" href="demos.css"> <link rel="stylesheet" href="jquery.ui.tabs.css"> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> <script type="text/javascript" src="jquery.ui.core.js"></script> <script type="text/javascript" src="jquery.ui.widget.js"></script> <script type="text/javascript" src="jquery.ui.tabs.js"></script> <script type="text/javascript"> $(document).ready(function() { $.ajaxSetup({ cache:false, beforeSend: function() { $('#ind').show() }, complete: function(){ $('#ind').hide() }, success: function() {} }); $( "#tabs" ).tabs({ ajaxOptions: { error: function( xhr, status, index, anchor ) { $( anchor.hash ).html( "Couldn't load this tab. We'll try to fix this as soon as possible. " + "If this wouldn't be a demo." ); } } }); }); </script> </head> <body> <div id="content" style="border:1px solid red"><img id="ind" src="images/indicator.gif" alt="Loading..." style="display:none"/></div> <div id="tabs"> <ul> <li><a href="#tabs-1">Preloaded</a></li> <li><a href="load.php?url=http://www.google.com">Tab 1</a></li> <li><a href="load.php?url=http://www.yahoo.com">Tab 2</a></li> <li><a href="load.php?url=http://www.msn.com">Tab 3 (slow)</a></li> <li><a href="ajax/content4-broken.php">Tab 4 (broken)</a></li> </ul> <div id="tabs-1"> <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p> </div> </div> </body> </html>
New code with optional jQuery plugin
<!DOCTYPE html> <html lang="en"> <head> <link class="jsbin" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" /> <script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js"></script> <script class="jsbin" src="http://malsup.github.com/jquery.blockUI.js"></script> <meta charset="utf-8"> <title>jQuery UI Tabs - Content via Ajax</title> <script> $.ajaxSetup({ cache:false, beforeSend: function() { $('#content').block({ message: '<img id="ind" src="images/indicator.gif" alt="Loading..." style="border: 1px solid red"/>', css: { width: '100%', width: '100%', padding: '5px', backgroundColor: '#FFF', '-webkit-border-radius': '10px', '-moz-border-radius': '10px', color: '#000' } }); }, complete: function(){ }, success: function() {} }); $(function() { $( "#tabs" ).tabs({ ajaxOptions: { success:function() { $('#content').unblock(); }, error: function( xhr, status, index, anchor ) { $( anchor.hash ).html( "Couldn't load this tab. We'll try to fix this as soon as possible. " + "If this wouldn't be a demo." ); } } }); }); </script> </head> <body> <div id="tabs" style="position:relative"> <ul> <li><a href="http://jsbin.com/ewoyos/2" title="content">Tab 1</a></li> <li><a href="http://jsbin.com/imakug/3" title="content">Tab 2</a></li> <li><a href="http://jsbin.com/ayocul" title="content">Tab 3</a></li> </ul> <div id="content" style="border: 1px solid red"></div> </div> </body> </html>
source share