gpt4 book ai didi

javascript - AJAX 函数作用于页面加载而不是按钮单击

转载 作者:行者123 更新时间:2023-12-03 05:29:05 24 4
gpt4 key购买 nike

这是我第一次尝试在网站上实现 AJAX。看来我的代码在 $(document).ready() 上运行我的 AJAX 函数。如何配置我的代码来声明这些函数,而无需在页面加载时运行它们?

代码:

$(document).ready(function(){

var score = 0; //set result score to start at 0

$("#start").click( renderNewQuestion()); // get and render a new question when user clicks start
$("#nextQuestion").click( postResult()); // post result then get and render new question when user clicks next question
$("#answer-toggle").click( function(){
$("#question").hide(); //hide question div
$("#answer").show(); //show answer div
});
// omitted code to calculate score as irrelevant

var newQuestionHTML; //save HTML for new question in a variable

function getChunk(){
$.ajax({
type: 'GET',
url: '/getchunk/',
success: function(data) {
newQuestionHTML = html(data)
},
error: function() {
alert('Something went wrong when getting the next question');
}
});
}

function renderNewQuestion(){
getChunk;
$("review-row").replaceWith(newQuestionHTML);
}

function postResult(){
var result = {
score: score,
csrfMiddlewareToken: $("input[name='csrfmiddlewaretoken']").val(),
chunkID: $("#chunk-id").val(),
};

$.ajax({
type: 'POST',
url: '/postresult/',
data: result,
success: renderNewQuestion(),
error: function() {
alert('Something went wrong when posting the results');
}
});
}

});

最佳答案

在这一行中 $("#start").click( renderNewQuestion()); 您应该传递该函数,而不是执行它,因此请删除函数名称后面的括号。

顺便说一句,这是更好的编写方式:

$("#start").on("click", renderNewQuestion);

关于javascript - AJAX 函数作用于页面加载而不是按钮单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41027213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com