Tabs: Fixed IE bug which would mistake tabs as ajax with dynamically created HTML, fixes #4033

This commit is contained in:
Klaus Hartl 2009-02-01 21:09:02 +00:00
parent 1866e1382f
commit c8360e619b
2 changed files with 15 additions and 0 deletions

View File

@ -262,6 +262,17 @@ module('tabs: Tickets');
equals( $('a:eq(2)', el).data('load.tabs'), 'test.html', 'should ignore fragment identifier' );
});
test('IE expands hash to full url and misinterprets tab as ajax, #4033', function() { // http://ui.jquery.com/bugs/ticket/4033
expect(1);
el = $('<div><ul><li><a href="#tab">Tab</a></li></ul><div id="tab"></div></div>')
.appendTo('#main').tabs();
equals($('a', el).data('load.tabs'), undefined, 'should not create ajax tab');
});
// test('', function() {
// expect(0);

View File

@ -62,6 +62,10 @@ $.widget("ui.tabs", {
var fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash
this.$tabs.each(function(i, a) {
var href = $(a).attr('href');
// For dynamically created HTML that contains a hash as href IE expands
// such href to the full page url with hash and then misinterprets tab as ajax...
if (href.split('#')[0] == location.toString().split('#')[0]) href = a.hash;
// inline tab
if (fragmentId.test(href))