Jquery kattintás esemény dinamikusan létrehozott elemeken

jQuery kattintás esemény dinamikusan létrehozott elemekre

Néha rajtad múlik, hogy létrehoz egy kattintási eseményt egy elemhez. Ez általában jQuery-el történik

És mi történik, ha rákattint a dinamikusan létrehozott elemekre? Végtére is gyakran kell alkalmazni azokat az elemeket, amelyek például az ajax kérésben kaphatók.

Ez az esemény egyszerűen nem működik, mert a DOM hierarchiában nem lesz olyan elem, amelyet a fődokumentum betöltése után adtak hozzá. Ehhez van egy módja ennek a helyzetnek, és ez az esemény "élő" használatát jelenti. Korábbi verzióit jQuery 1.7 segítségével az élő () metódus, de verziótól kezdődően jQuery 1.9 és újabb, ez a módszer már eltávolították, és helyette használja a módszert (). A módszerről a jQuery hivatalos dokumentációjából tájékozódhat. Hozzáteszem, hogy az on () metódust három könyvtári módszer kombinálásával hozták létre, amelyek az eseménykezelőket az oldalelemekre állítják: bind (). delegált () és élő (). Ezek a módszerek immár elavultnak tekinthetők, bár még mindig támogatottak.

Íme egy példa erre a módszerre

Nem ajánlatos ezt a dizájnt használni minden elem esetében, és jobb, ha egy kliens eseményt hoz létre a dinamikusan beillesztett elemekhez:

Egyébként a Yii-ben a renderPartial () metódust használva kifejezetten az ajax lekérdezésekhez tekinthetők meg, ha nem kell betölteni az alapjelölt sablont (általában main.php)

Különösen érdemes megemlíteni néhány olyan paramétert, amelyet ez a módszer megtehet. Tekintsük tovább őket

  • string $ view - minden itt világos, ez a megjelenítendő nézet neve
  • array $ data - egy tömb, amely a nézethez továbbítandó adatokat tartalmazza. Általában ez a modellből kapott adatok
  • logikai $ return - a renderelés eredményét vissza kell térni a végfelhasználók számára megjelenített helyett
  • Boolean $ processOutput valószínűleg a legérdekesebb paraméter. Ezt akkor kell használni, ha bizonyos parancsfájlok végrehajtása szükséges a nézet megjelenítésének eredményeképpen. Tegyük fel, hogy egy olyan ajax-os oldalat töltünk be, amelyen a kapcsolódó szkriptek a Yii :: app () -> clientScript-> registerScript () által tartalmaznak. Így ezek a szkriptek csak akkor kerülnek végrehajtásra, ha a $ processOutput értéket true értékre állítottuk és engedélyeztük a regisztrált kliensszkriptek utófeldolgozását. A megfelelő helyeken kerülnek beillesztésre.

Kapcsolódó cikkek