37 lines
970 B
JavaScript
37 lines
970 B
JavaScript
/**
|
|
* @file
|
|
* Implements history using the BBQ plugin.
|
|
* See http://benalman.com/code/projects/jquery-bbq/examples/fragment-jquery-ui-tabs
|
|
*/
|
|
(function($) {
|
|
|
|
Drupal.quicktabsBbq = function($tabset, clickSelector, changeSelector) {
|
|
|
|
changeSelector = changeSelector || clickSelector;
|
|
|
|
// Define our own click handler for the tabs, overriding the default.
|
|
$(clickSelector, $tabset).each(function(i, el){
|
|
this.tabIndex = i;
|
|
$(this).click(function(e){
|
|
e.preventDefault();
|
|
var state = {},
|
|
id = $tabset.attr('id'), // qt container id
|
|
idx = this.tabIndex; // tab index
|
|
|
|
state[id] = idx;
|
|
$.bbq.pushState(state);
|
|
});
|
|
});
|
|
|
|
$(window).bind('hashchange', function(e) {
|
|
$tabset.each(function() {
|
|
var idx = $.bbq.getState(this.id, true);
|
|
var $active_link = $(this).find(changeSelector).eq(idx);
|
|
$active_link.triggerHandler('change');
|
|
});
|
|
});
|
|
|
|
$(window).trigger('hashchange');
|
|
}
|
|
|
|
})(jQuery); |