mirror of
https://github.com/jquery/jquery-ui.git
synced 2026-04-20 03:02:41 -04:00
Tabs: normalization of href attribute required in IE, fixes #4134
This commit is contained in:
@@ -43,7 +43,7 @@ test('disable', function() {
|
||||
});
|
||||
|
||||
test('add', function() {
|
||||
expect(3);
|
||||
expect(4);
|
||||
|
||||
el = $('#tabs1').tabs();
|
||||
el.tabs('add', "#new", 'New');
|
||||
@@ -55,6 +55,8 @@ test('add', function() {
|
||||
ok(other.is('.ui-state-hover'), 'should not remove mouseover handler from existing tab');
|
||||
other.simulate('mouseout');
|
||||
|
||||
equals($('a', added).attr('href'), '#new', 'should not expand href to full url of current page');
|
||||
|
||||
ok(false, "missing test - untested code is broken code.");
|
||||
});
|
||||
|
||||
|
||||
@@ -81,13 +81,20 @@ $.widget("ui.tabs", {
|
||||
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;
|
||||
|
||||
// For dynamically created HTML that contains a hash as href IE < 8 expands
|
||||
// such href to the full page url with hash and then misinterprets tab as ajax.
|
||||
// Same consideration applies for an added tab with a fragment identifier
|
||||
// since a[href=#fragment-identifier] does unexpectedly not match.
|
||||
// Thus normalize href attribute...
|
||||
if (href.split('#')[0] == location.toString().split('#')[0]) {
|
||||
href = a.hash;
|
||||
a.href = href;
|
||||
}
|
||||
|
||||
// inline tab
|
||||
if (fragmentId.test(href))
|
||||
if (fragmentId.test(href)) {
|
||||
self.$panels = self.$panels.add(self._sanitizeSelector(href));
|
||||
}
|
||||
|
||||
// remote tab
|
||||
else if (href != '#') { // prevent loading the page itself if href is just "#"
|
||||
@@ -109,8 +116,9 @@ $.widget("ui.tabs", {
|
||||
}
|
||||
|
||||
// invalid tab href
|
||||
else
|
||||
else {
|
||||
o.disabled.push(i);
|
||||
}
|
||||
});
|
||||
|
||||
// initialization from scratch
|
||||
|
||||
Reference in New Issue
Block a user