| 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: 12 let
|
|||
0