Mam mały problem z wyświetlaniem okien dialogowych jquery. Podstrony otwieram za pomocą AJAX. Problem opisze na przykładzie... Otwieram podstronę po raz pierwszy klikam w button odpowiedzialny za otwieranie dialogu i wszystko działa poprawnie. Kliknę w ten sam link klikam ponownie w button i dialog się otwiera, lecz nie działa w nim JS. Gdy kliknę 2x to już wczytuję się prawidłowo.
Okno dialogowe:
Kod
$(document).ready(function(){
$("#twojekonto").button().click(function() {
$("#dialog_forum_calosc").load('tawerna/forum_konto.php').dialog({height: 300, resizable: false, width: 600, modal: true, draggable: false, show: 'fade', hide: 'fade'
}); }
);
});
</script>
<div id="twojekonto" style="float: right; margin: 6px;">Zarządzaj swoim kontem</div>
<div id="dialog_forum_calosc" title="Zarządzanie swoim kontem" style="display:none;"></div>
$("#twojekonto").button().click(function() {
$("#dialog_forum_calosc").load('tawerna/forum_konto.php').dialog({height: 300, resizable: false, width: 600, modal: true, draggable: false, show: 'fade', hide: 'fade'
}); }
);
});
</script>
<div id="twojekonto" style="float: right; margin: 6px;">Zarządzaj swoim kontem</div>
<div id="dialog_forum_calosc" title="Zarządzanie swoim kontem" style="display:none;"></div>
Skrypt do ładowania podstron:
Kod
function ajax_link(class) {
//References
var loading = $("#top_zegar");
var container = $("#zawartosc");
$(class).click(function(){
$.ajax({
type: "GET",
url: $(this).attr("href"),
async: false,
dataType: "html",
cache: false,
beforeSend: function() { showLoading(); },
complete: function() { hideLoading(); container.css({opacity:"1"}); },
success: function(msg) { container.html(msg); },
error: function (XMLHttpRequest, textStatus, errorThrown) { container.html('<center><b>Wystapil blad podczas wczytywania strony!</b></center>'); }
});
//prevent default action
return false;
});
//show loading bar
function showLoading(){
loading.css({visibility:"visible"}).css({display:"block"}).css({opacity:"1"});
container.css({opacity:"0.3"});
}
//hide loading bar
function hideLoading(){ loading.css({opacity:"0"}); };
}
//References
var loading = $("#top_zegar");
var container = $("#zawartosc");
$(class).click(function(){
$.ajax({
type: "GET",
url: $(this).attr("href"),
async: false,
dataType: "html",
cache: false,
beforeSend: function() { showLoading(); },
complete: function() { hideLoading(); container.css({opacity:"1"}); },
success: function(msg) { container.html(msg); },
error: function (XMLHttpRequest, textStatus, errorThrown) { container.html('<center><b>Wystapil blad podczas wczytywania strony!</b></center>'); }
});
//prevent default action
return false;
});
//show loading bar
function showLoading(){
loading.css({visibility:"visible"}).css({display:"block"}).css({opacity:"1"});
container.css({opacity:"0.3"});
}
//hide loading bar
function hideLoading(){ loading.css({opacity:"0"}); };
}
Podstrony:
Kod
$(document).ready(function() {
ajax_link('a.ajax-link');
});
ajax_link('a.ajax-link');
});
Kod
<a class="ajax-link" href="news.php">Początek</a><br>
Pozdrawiam i z góry dziękuję za pomoc
Tomasz Furca