1. Mitä varten alla oleva success-funktion data on tyhjä?
(function($) {
$(document).ready(function() {
$.ajaxSetup({
cache:false,
type:'POST',
url:'/php/ajax-gateway.php',
timeout:60000,
dataType:'html',
error:function(XMLHttpRequest, textStatus, errorThrown) {
$('div#content').html('An error occured: ' + errorThrown);
}
});
$('ul#menu li a').click(function() {
$.ajax({
success:function(data, textStatus, XMLHttpRequest) {
$('div#content').html(data);
}
});
});
});
})(jQuery);/php/ajax-gateway.php
<?php echo '<p>Testi</p>'; ?>
2. Jos muutan tämän...
$.ajax({
success:function(data, textStatus, XMLHttpRequest) {
$('div#content').html(data);
}
});tällaiseksi...
$.ajax({
success:function(data, textStatus, XMLHttpRequest) {
$('div#content').html('<p>Testi</p>');
}
});niin, mitä varten tuo <p>Testi</p> ilmestyy ruudulle scriptin suorituksen ajaksi vain ja katoaa sen jälkeen?
Nyt joutuu arvailemaan, kun ei tiedä miltä HTML näyttää. Minne menun <a>-elementit linkittävät? Jos samalle sivulle, klikkaaminen lataa sen uudestaan. Tämän saa estettyä palauttamalla click-eventin käsittelijästä false:
$('ul#menu li a').click(function() {
$.ajax({
success:function(data, textStatus, XMLHttpRequest) {
$('div#content').html(data);
}
});
return false;
});Voisit myös laittaa success-funktioon alert(data) niin näkisit, onko data-argumentti tosiaan tyhjä vai onko ongelma muualla.
Jos tämä ei auttanut, näytä koko html-tiedosto niin että sitä voi testata.
Kiitoksia funktio. Tuo return false korjasi asian. Oikeastaan koitinkin tuota return false:a jossain vaiheessa, mutta olin pistänyt sen virheellisesti tuonne success-funktion sisään :E
Aihe on jo aika vanha, joten et voi enää vastata siihen.