In meiner App habe ich eine Objektkarte als assoziatives Array, die ich von JSON bekomme. Dies ist eine Karte, die Fragen und vier Antworten auf jede Frage enthält. Als nächstes versuche ich eine Frage an div anhängen und beantworte als radio buttons div Antworten. Alles scheint ohne eine Sache perfekt zu funktionieren. Nach dem Anhängen von Inhalt auf meiner divs-Seite wird neu geladen. Meine Frage ist also, wie man in diesem Fall das Nachladen von Seiten verhindert. Ich habe versucht, einen Ajax-Anruf zu verwenden, aber ich habe leider versagt. Mein Code ist unten angegeben:Inhalt an div bei Klick anfügen, ohne dass die Seite neu geladen werden muss
<script>
$(document).ready(function(){
var questions = [];
$.getJSON("/exam/json", function (result) {
var map = {};
var response = result;
for (var i = 0, l = response.length; i < l; i++) {
map[response[i].id] = response[i];
}
$('#nextButton').click(function(){
prepareQuestion(map);
});
});
});
function prepareQuestion(questionList){
var actualQuestionIndex = String(Math.floor(Math.random() * Object.keys(questionList).length) + 1);
$('#question').append(questionList[actualQuestionIndex].question);
if(questionList[actualQuestionIndex].ansc === null){
$('#answers').append("<input type='radio' name='ansa' value='A'>"+questionList[actualQuestionIndex].ansa+"<br>");
$('#answers').append("<input type='radio' name='ansb' value='B'>"+questionList[actualQuestionIndex].ansb+"<br>");
}else{
$('#answers').append("<input type='radio' name='ansa' value='A'>"+questionList[actualQuestionIndex].ansa+"<br>");
$('#answers').append("<input type='radio' name='ansb' value='B'>"+questionList[actualQuestionIndex].ansb+"<br>");
$('#answers').append("<input type='radio' name='ansc' value='C'>"+questionList[actualQuestionIndex].ansc+"<br>");
$('#answers').append("<input type='radio' name='ansd' value='D'>"+questionList[actualQuestionIndex].ansd+"<br>");
}
delete map[actualQuestionIndex];
}
</script>
Durch Ihr Javascript sehe ich nichts, was dazu führen würde, dass die Seite neu geladen würde, und das Bearbeiten der DOM-Elemente würde nicht direkt dazu führen, dass eine Seite neu geladen wird. Könnten Sie bitte den HTML-Code angeben, auf den sich dieses Javascript bezieht? –
Gemäß Ihrem Code-Snippet kann Ihre Seite nicht erneut geladen werden. Sie könnten etwas anderes falsch machen –