Autor | Zpráva | ||
---|---|---|---|
David1256 Profil |
#1 · Zasláno: 12. 6. 2014, 10:51:52
Dobrý den,
mám tento kód. <html> <head> <title>Příklad</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> </head> <body> <div id="obal"> <a href="#" id="element">Element</a> </div> <a href="#" id="vymenObsahObalu">Vyměň obsah obalu</a> <script> document.getElementById("element").onclick = function() {alert("Kliknul jsi na element.");} document.getElementById("vymenObsahObalu").onclick = function() {$("#obal").load("element.html");} </script> </body> </html> Obsah souboru element.html je: <a href="#" id="element">Element</a> Výše uvedený příklad tedy po kliknutí na odkaz "Vyměň obsah obalu" naloaduje do divu s id "obal" soubor element.html. Prakticky se tedy provede reload, jelikož v elemet.html je stejný obsah jako v divu "obal". Problém však je v tom, že když se klikne poprvé na "Element", tak vyskočí správně hláška "Kliknul jsi na element", ovšem po kliknutí na "Vyměň obsah obalu" a poté znovu kliknutí na "Element" se už hláška "Kliknul jsi na element nezobrazí", jak kdyby vůbec nevěděla o tom, že má někde nadefinované chování na onClick. Nevíte někdo, čím by to mohlo být a jak to vyřešit? Děkuji. |
||
Zechy Profil |
Pokud potřebuješ prvku dát funkci, která má probíhat i po jeho ajaxovém reloadu, je jistější mu to dát například jako
<a onclick="...">...</a> |
||
David1256 Profil |
#3 · Zasláno: 12. 6. 2014, 11:59:09
Ok, díky.
|
||
Destiny_1 Profil |
nebylo by lepší to celé napsat v jquery?
$(document).ready(function(){ $("#element").click(function(){ alert("funguje"); }); $("#vymenObsahObalu").click(function(){ alert("taky funguje"); }); }); |
||
_es Profil |
David1256:
„ovšem po kliknutí na "Vyměň obsah obalu" a poté znovu kliknutí na "Element" se už hláška "Kliknul jsi na element nezobrazí", jak kdyby vůbec nevěděla o tom, že má někde nadefinované chování na onClick.“ Lebo po vyplnení obsahom z element.html sa element s id="element" zmaže a nový, dynamicky vytvorený, síce s rovnakým id , udalosť nemá nastavenú.
|
||
Destiny_1 Profil |
ano _es má pravdu, takže kód by mohl vypadat takhle
<html> <head> <title>Příklad</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> </head> <body> <div id="obal"> <a href="#" id="element">Element</a> </div> <a href="#" id="vymenObsahObalu">Vyměň obsah obalu</a> <script> $(document).ready(function(){ $("#obal").on("click","#element",function(){ alert("funguje"); }); $("#vymenObsahObalu").click(function(){ $("#obal").load("element.html"); }); }); </script> </body> </html> |
||
Časová prodleva: 10 let
|
0