fixed bug
This commit is contained in:
1 parent
54b18039e3
commit
8c3232fadf
16 files changed
+1134
-97
No files matched your search
@@ -121,12 +121,24 @@ function initInlineSearch() {
|
||||
searchContainer.style.display = 'block';
|
||||
input.focus();
|
||||
loadSearchIndex();
|
||||
// Add Esc key listener
|
||||
document.addEventListener('keydown', escListener);
|
||||
} else {
|
||||
header.style.display = 'inline-flex';
|
||||
searchContainer.style.display = 'none';
|
||||
input.value = '';
|
||||
// Remove .has-value class
|
||||
searchContainer.querySelector('.search-input-group').classList.remove('has-value');
|
||||
resultsContainer.classList.remove('show');
|
||||
resultsContainer.innerHTML = '';
|
||||
// Remove Esc key listener
|
||||
document.removeEventListener('keydown', escListener);
|
||||
}
|
||||
};
|
||||
|
||||
var escListener = function(e) {
|
||||
if (e.key === 'Escape') {
|
||||
window.toggleSearchMode(false);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -137,8 +149,41 @@ function initInlineSearch() {
|
||||
input.parentNode.replaceChild(newInput, input);
|
||||
input = newInput;
|
||||
|
||||
// Handle Close Icon Logic
|
||||
var closeIcon = searchContainer.querySelector('.close-icon');
|
||||
if (closeIcon) {
|
||||
// Remove inline onclick handler if present
|
||||
closeIcon.onclick = null;
|
||||
closeIcon.removeAttribute('onclick');
|
||||
|
||||
// Add new custom handler
|
||||
closeIcon.addEventListener('click', function(e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
if (input.value.trim().length > 0) {
|
||||
// Clear input
|
||||
input.value = '';
|
||||
input.focus();
|
||||
// Trigger input event to update UI
|
||||
input.dispatchEvent(new Event('input'));
|
||||
} else {
|
||||
// Close search
|
||||
window.toggleSearchMode(false);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
input.addEventListener('input', function() {
|
||||
var query = this.value.trim().toLowerCase();
|
||||
var inputGroup = this.closest('.search-input-group');
|
||||
|
||||
// Toggle has-value class
|
||||
if (this.value.length > 0) {
|
||||
inputGroup.classList.add('has-value');
|
||||
} else {
|
||||
inputGroup.classList.remove('has-value');
|
||||
}
|
||||
|
||||
if (query.length === 0) {
|
||||
resultsContainer.classList.remove('show');
|
||||
@@ -156,10 +201,11 @@ function initInlineSearch() {
|
||||
if (results.length > 0) {
|
||||
var html = results.slice(0, 5).map(function(item) {
|
||||
return `
|
||||
<a href="${item.permalink}" class="search-result-item" style="display:block; text-decoration:none;" onclick="window.toggleSearchMode(false)">
|
||||
<a href="${item.permalink}" class="search-result-item" onclick="window.toggleSearchMode(false)">
|
||||
<span class="search-result-title">${item.title}</span>
|
||||
<div style="display:flex; align-items:center;">
|
||||
<div class="search-result-meta">
|
||||
<span class="search-result-date">${item.date}</span>
|
||||
<span class="search-result-summary-text">${item.summary || ''}</span>
|
||||
</div>
|
||||
</a>
|
||||
`;
|
||||
@@ -173,7 +219,7 @@ function initInlineSearch() {
|
||||
window.pjax.refresh(resultsContainer);
|
||||
}
|
||||
} else {
|
||||
resultsContainer.innerHTML = '<div class="search-result-item" style="text-align:center;color:#999;cursor:default;">无搜索结果</div>';
|
||||
resultsContainer.innerHTML = '<div class="search-result-item no-result">暂无相关内容</div>';
|
||||
resultsContainer.classList.add('show');
|
||||
}
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user