/ / Obnovenie poslucháča udalostí Javascriptu - javascript, jquery, html, css

Javascript event listener obnoviť - javascript, jquery, html, css

Mám nejaký javascript, ktorý som zdedil za svojpráce. V tomto javascripte máme bočný panel, ktorý sa neustále aktualizuje (každých 1 - 10 minút). V skripte analyzujeme a spracovávame AJAX zo servera a potom nazývame zaujímavou funkciou.

function renewClicks(){
$(".classElem").unbind("click");
$(".classElem2").unbind("click");
$(".classElem3").unbind("click");

$(".classElem").click(elm1funct);
$(".classElem2").clikc(elm2funct);
$(".classElem3").click(elm3funct);
}

Kde .classElem je selektor triedy css, ktorý je pripojený ku každému obrázku, ktorý je pridaný na stránku. A elmfunct je funkcia, ktorá je napísaná na zvládnutie kliknutia. Spustí sa pri každej aktualizácii (odznačenie platných už pridaných prvkov a ich opätovné pridanie). Chcem vedieť, či existuje spôsob, ako by som mohol pripojiť poslucháča k prvku tela v DOM tak, aby všetky obrazové prvky pridané na stránku a ktoré zdedili triedu css už boli spracované, a preto nebudú neregistrované a znovu zaregistrované. registrované pri každej aktualizácii.

Ďakujeme vám za akékoľvek informácie, ktoré môžete poskytnúť.

odpovede:

8 pre odpoveď č. 1

Môžete to vyskúšať:

$("body").on("click",".classElem",elm1funct)
.on("click",".classElem2",elm2funct)
.on("click",".classElem3", elm3funct);

z Dokumenty jQuery:

Delegované udalosti majú tú výhodu, ktorú môžuspracovanie udalostí z potomkov, ktoré sú pridané do dokumentu neskôr. podľa vyberanie prvku, u ktorého je zaručené, že bude prítomný v čase Ak je pripojený delegovaný obslužný program udalostí, môžete naň delegované udalosti použiť vyhnúť sa nutnosti často pripájať a odstraňovať obsluhy udalostí.


7 pre odpoveď č. 2

Ako už bolo spomenuté @crush, použite prístup delegovaný na udalosti, aby ste sa vyhli nezáväzným a opätovným väzbám udalostí:

$(document).on("click", ".classElem", elm1funct);