rustdoc: Fix search for something on the same page

This commit is contained in:
Alex Crichton 2013-09-27 11:06:07 -07:00
parent a925762c3b
commit b93678eca5
2 changed files with 20 additions and 7 deletions

View File

@ -66,7 +66,8 @@ pub fn render<T: fmt::Default, S: fmt::Default>(
</form>
</nav>
<section class=\"content {ty}\">{content}</section>
<section id='main' class=\"content {ty}\">{content}</section>
<section id='search' class=\"content hidden\">{content}</section>
<section class=\"footer\"></section>

View File

@ -39,9 +39,15 @@
if (e.keyCode === 188 && $('#help').hasClass('hidden')) { // question mark
e.preventDefault();
$('#help').removeClass('hidden');
} else if (e.keyCode === 27 && !$('#help').hasClass('hidden')) { // esc
e.preventDefault();
$('#help').addClass('hidden');
} else if (e.keyCode === 27) { // esc
if (!$('#help').hasClass('hidden')) {
e.preventDefault();
$('#help').addClass('hidden');
} else if (!$('#search').hasClass('hidden')) {
e.preventDefault();
$('#search').addClass('hidden');
$('#main').removeClass('hidden');
}
} else if (e.keyCode === 83) { // S
e.preventDefault();
$('.search-input').focus();
@ -202,7 +208,13 @@
var hoverTimeout, $results = $('.search-results .result');
$results.on('click', function () {
document.location.href = $(this).find('a').prop('href');
var dst = $(this).find('a')[0];
console.log(window.location.pathname, dst.pathname);
if (window.location.pathname == dst.pathname) {
$('#search').addClass('hidden');
$('#main').removeClass('hidden');
}
document.location.href = dst.href;
}).on('mouseover', function () {
var $el = $(this);
clearTimeout(hoverTimeout);
@ -277,7 +289,6 @@
'/index.html" class="' + type +
'">' + name + '</a>';
} else if (item.parent !== undefined) {
console.log(item);
var myparent = allPaths[item.parent];
var anchor = '#' + type + '.' + name;
output += item.path + '::' + myparent.name +
@ -308,7 +319,8 @@
}
output += "</p>";
$('.content').html(output);
$('#main.content').addClass('hidden');
$('#search.content').removeClass('hidden').html(output);
$('.search-results .desc').width($('.content').width() - 40 -
$('.content td:first-child').first().width());
initSearchNav();