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

标签 javascript jquery html

(在 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/

相关文章:

javascript - 根据列值更改表格行的颜色

javascript - 除了单击之外,我还可以使用哪些其他事件处理程序?

java - 使用 jsoup 在 div 中选择标签的问题

javascript - 尝试在 SVG 路径上为飞机制作动画

Jquery根据值选择文本区域

javascript - 在 Jquery 的圆宽度中将这三个框旋转或动画化一个位置的最佳方法是什么?

javascript - 单独编译 Angular 组件并在 HTML 页面中一起使用它们

javascript - 将 javascript 数组发送到 django View

javascript - 图层未显示,即使它被分配了高 z-index

html - 在css中为文件上传按钮添加样式