Mam problem z moją stroną. Kiedy kliknę link na mojej stronie, załaduje on zewnętrzny html do elementu div na stronie. div z id = "div1". (AJAX)
Działa idealnie.
zewnętrzna strona HTML, która została załadowana zawiera element div o identyfikatorze = "rex".
Mój problem to:
Mam skrypt, który musi dodać treść dodiv (z id = "rex") napisałem skrypt w pliku zewnętrznym, ale nie działa. prawdopodobnie muszę napisać mój skrypt na stronie, a nie w zewnętrznym pliku html.
tutaj skrypt Numer 3:
$("#rex").ready(function() {
var url="genredetail.php";
var activitydetail = sessionStorage.activitydetail;
$.getJSON(url,function(json){
$.each(json.genredetail,function(i,item){
if(item.name == activitydetail){
$("<p class="excerpt">" + item.beschreibung3 + "</p>").appendTo("#rex");
}
});
});
});
Ten skrypt musi zostać uruchomiony po załadowaniu pliku zewnętrznego (z div id = "rex"). Ale to nie "t :-( Co mogę zrobić? Problem polega na tym, że skrypt działa, zanim strona otrzyma <div id="rex">
?
Z góry dziękuję i przepraszam mój zły angielski: -S
Obraz dla większej przejrzystości
numer skryptu 1 tworzy łącze. kiedy kliknę link, skrypt numer 2, pozwól stronie załadować div1. Skrypt numer 3 musi wypełnić div = "rex" informacjami. ale to nie działa.
Odpowiedzi:
1 dla odpowiedzi № 1spróbuj załadować
$("div").on("load","#rex",function() {
do something
});
0 dla odpowiedzi nr 2
Spróbuj użyć setInterval, aby sprawdzać element rex co 0,5 s
var myInterval = setInterval(function(){
if ($("#rex").length)
{
var url="genredetail.php";
var activitydetail = sessionStorage.activitydetail;
$.getJSON(url,function(json){
$.each(json.genredetail,function(i,item){
if(item.name == activitydetail){
$("<p class="excerpt">" + item.beschreibung3 + "</p>").appendTo("#rex");
clearInterval(myInterval);
}
}, 500);
0 dla odpowiedzi № 3
Musisz przeładować skrypt, jeśli jest już załadowany. Jak już powiedziałeś, ładujesz zewnętrzny html do elementu div, czy zawiera on zewnętrzny plik js, którego używasz? jeśli nie, proszę go dołączyć.