minimize document-wide eventlisteners
parent
2006040375
commit
a9f169d3be
|
@ -21,24 +21,6 @@ function execute(element, attr) {
|
|||
}
|
||||
}
|
||||
|
||||
document.addEventListener("click", function(e){
|
||||
const element = e.target
|
||||
if (element instanceof HTMLImageElement && (element.alt.startsWith('![](')) || element.classList.contains('in-comment-image'))
|
||||
expandImage()
|
||||
else if (element.tagName == "TH")
|
||||
sort_table(element)
|
||||
else if (element.classList.contains('giphy'))
|
||||
insertGIF(e.target.src);
|
||||
else if (element.classList.contains('gif-cat-overlay'))
|
||||
searchGifs(e.target.firstElementChild.innerHTML);
|
||||
else if (element.dataset.href)
|
||||
location.href = element.dataset.href;
|
||||
|
||||
if (element.dataset.toggleelement) {
|
||||
document.getElementById(element.dataset.toggleelement).classList.toggle(element.dataset.toggleattr)
|
||||
}
|
||||
});
|
||||
|
||||
const onsubmit = document.querySelectorAll('[data-onsubmit]');
|
||||
for (const element of onsubmit) {
|
||||
element.onsubmit = (event)=>{
|
||||
|
@ -110,6 +92,17 @@ const reload_page = document.getElementById('reload_page')
|
|||
if (reload_page) {
|
||||
reload_page.onclick = () => {location.reload()};
|
||||
}
|
||||
|
||||
const TH = document.getElementsByTagName('th')
|
||||
for (const element of TH) {
|
||||
element.onclick = () => {sort_table(element)};
|
||||
}
|
||||
|
||||
const toggleelement = document.querySelectorAll('[data-toggleelement]');
|
||||
for (const element of toggleelement) {
|
||||
element.onclick = () => {
|
||||
document.getElementById(element.dataset.toggleelement).classList.toggle(element.dataset.toggleattr);
|
||||
};
|
||||
}
|
||||
|
||||
function register_new_elements(e) {
|
||||
|
@ -142,6 +135,10 @@ function register_new_elements(e) {
|
|||
for (const element of popover_triggers) {
|
||||
element.onclick = (e) => {popclick(e)};
|
||||
}
|
||||
|
||||
const expandable = document.querySelectorAll('.in-comment-image, img[alt^="![]("]');
|
||||
for (const element of expandable) {
|
||||
element.onclick = () => {expandImage()};
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -176,10 +176,12 @@ function autoExpand(field) {
|
|||
window.scrollTo(xpos,ypos);
|
||||
};
|
||||
|
||||
document.addEventListener('input', function (event) {
|
||||
if (event.target.tagName.toLowerCase() !== 'textarea') return;
|
||||
autoExpand(event.target);
|
||||
}, false);
|
||||
const textareas = document.getElementsByTagName('textarea')
|
||||
for (const element of textareas) {
|
||||
element.addEventListener('input', ()=>{
|
||||
autoExpand(element)
|
||||
});
|
||||
}
|
||||
|
||||
function smoothScrollTop()
|
||||
{
|
||||
|
|
|
@ -103,6 +103,11 @@ async function getGifs(form) {
|
|||
<div class="gif-cat-overlay"><div>Meh</div></div>
|
||||
<img loading="lazy" src="https://media.giphy.com/media/xT77XTpyEzJ4OJO06c/200w.webp">
|
||||
</div>`
|
||||
|
||||
const overlays = document.getElementsByClassName('gif-cat-overlay')
|
||||
for (const element of overlays) {
|
||||
element.onclick = () => {searchGifs(element.firstElementChild.innerHTML)};
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById('gifs-back-btn').onclick = getGifs;
|
||||
|
@ -123,6 +128,11 @@ async function searchGifs(searchTerm) {
|
|||
const insert = `<img class="giphy" loading="lazy" data-bs-dismiss="modal" src="${url}"></div>`
|
||||
container.insertAdjacentHTML('beforeend', insert);
|
||||
}
|
||||
|
||||
const giphy = document.getElementsByClassName('giphy')
|
||||
for (const element of giphy) {
|
||||
element.onclick = () => {insertGIF(element.src)};
|
||||
}
|
||||
}
|
||||
else {
|
||||
noGIFs.classList.remove('d-none')
|
||||
|
|
|
@ -25,3 +25,10 @@ if (!location.href.includes("?context")) {
|
|||
comments[pid] = {c: newTotal, t: Date.now()}
|
||||
localStorage.setItem("comment-counts", JSON.stringify(comments))
|
||||
}
|
||||
|
||||
const fake_textarea = document.querySelector('[data-href]')
|
||||
if (fake_textarea) {
|
||||
fake_textarea.onclick = () => {
|
||||
location.href = fake_textarea.dataset.href;
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue