gpt4 book ai didi

javascript - $.ajax 干扰此脚本中的 .hide() 和 .show() Jquery

转载 作者:行者123 更新时间:2023-11-28 16:18:14 25 4
gpt4 key购买 nike

(在 Firefox 和 IE9 中不起作用。在 Chrome 中,这有效)

如果我删除 ajax,隐藏/显示 JQuery 就可以工作。有什么解决办法吗?

<form id="ppform" action="blah.asp" method="post">
<div id="saleload">Blah</div>
<button id="sendbutton">Send</button>
</form>

$(document).ready(function(){

$('#saleload').hide();

$('#sendbutton').click(function() {

$('#saleload').show();

$.ajax({
type: "POST",
url: /blah/blah.asp,
data: reqBody,
dataType: "json",
success:function(data,textStatus){

if (data.redirect) {
window.location.href = data.redirect;
}else{
$("#ppform").replaceWith(data.form);
}
}
});
});
});

最佳答案

这一行:

$("#ppform").replaceWith(data.form);

正在用 Ajax 请求的响应替换整个表单内容。这意味着您设置的点击处理程序也将消失,因为 #sendbutton 将消失。即使 data.form 中有另一个具有相同 ID 的按钮,它也不起作用。您必须改用事件委托(delegate):

$(document).ready(function(){
$('#saleload').hide();
$(document).on('click', '#sendbutton', function(){
$('#saleload').show();
$.ajax({
type: "POST",
url: "/blah/blah.asp",
data: reqBody,
dataType: "json",
success:function(data,textStatus){
if (data.redirect) {
window.location.href = data.redirect;
} else {
$("#ppform").replaceWith(data.form);
}
}
});
});
});

另外:您似乎向服务器发布了一个 undefined variable reqBody,并且,正如上面 lonesomeday 所说,您在 URL 周围缺少引号。

关于javascript - $.ajax 干扰此脚本中的 .hide() 和 .show() Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10711415/

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