Javascript 在没有警报语句的情况下,图像和文本不会在完成Ajax调用后的一次单击中更改

Javascript 在没有警报语句的情况下,图像和文本不会在完成Ajax调用后的一次单击中更改,javascript,html,jquery,Javascript,Html,Jquery,我制作了一个脚本,通过AJAX更新字段值,然后在页面上更改相关文本和图像,而无需重新加载。有多个这样的链接,其中一个的html是 <li> {% if object.attr1== 0 %} <IMG SRC="{{ STATIC_URL }}images/unchecked.jpeg"> {% else %} <IMG SRC="{{ STATIC_URL }}images/check.jpeg"> {

我制作了一个脚本,通过AJAX更新字段值,然后在页面上更改相关文本和图像,而无需重新加载。有多个这样的链接,其中一个的html是

<li>
    {% if object.attr1== 0 %}
        <IMG SRC="{{ STATIC_URL }}images/unchecked.jpeg">
    {% else %}
        <IMG SRC="{{ STATIC_URL }}images/check.jpeg">
    {% endif %}
    <span style="padding-left:5px"><a id="update" title="Click to update status" href="/update/{{object.id}}/1/">Attribute Name</a>:&nbsp; </span>
    <span id="sent_text">
        {% if object.attr1 == 0 %}
            Completed
        {% else %}
             Incomplete
        {% endif %}
    </span>
</li>
我的问题
AJAX
调用工作正常,对象状态正在更新,但是如果我删除
警报
调用,图像和文本不会在一次单击中改变。如果有
警报
调用,则图像和文本本身会发生变化

但是,如果我删除它,当我单击它两次时,就会发生更改。谁能告诉我为什么我会有这种奇怪的行为

更新:我知道这听起来很奇怪,但事实确实如此。我的脚本有时有效,有时现在有效。不工作是指
AJAX
调用总是成功的,但有时负责更改文本和图像的脚本不工作。
这真是令人费解。

让您的
在成功和错误块中返回false

把它弄出来会让它先执行,这可能就是原因
alert()
停止脚本的执行,这就是为什么如果您有alert(),您会看到预期的结果


现在似乎出现了一些新问题。。我的js已完全停止工作,正在执行正常的post请求。在
console.log
属性列表GP_z(a=“cb=f32a292a501ea3a&orig…&ackData[id]=1&width=90”)/\uu/app…QQ/d=1/(第116行)Ye(a=message)之后,我可以看到这个错误?一次使用帖子,下一次使用AJAX?这是您的需求还是您只想执行AJAX请求?为什么要在AJAX回调中返回false?不,我不是同时发出POST请求和AJAX请求。事实上,我已经写了一个普通的POST请求作为一个回退,所以如果javascript中出现了一些问题或者它被禁用,那么正常的请求将通过。可能这不是解决方法。如果JS工作正常,并且没有被禁用怎么办?您试过小提琴了吗?因为我使用的是Django,所以在视图中,我编写了
if request\u is\u ajax():
所以只执行了部分调用。是的,我把小提琴调高了三倍,但不知怎的,它在我的情况下不起作用
$(function() {

    $("a#update").click(function(){

        var curr_elem = $(this) ;
        var link = $(this).attr("href");

        $.ajax({
              type: "POST",
              url: link,
              success: function() 
              { 
                var text = curr_elem.parent().parent().find('span#sent_text').text();
                if (text == 'Completed')
                {
                    curr_elem.parent().parent().find('span#sent_text').html('In complete');
                    curr_elem.parent().parent().find('IMG').attr("src", "/static/images/check.jpeg");
                }
                else
                {
                    curr_elem.parent().parent().find('span#sent_text').html('Completed');
                    curr_elem.parent().parent().find('IMG').attr("src", "/static/images/unchecked.jpeg");
                }
                alert(text);
              },
               error: function(xhr, status, error)
              {
                alert("Function failed!");
              }
        }); 
        return false; 
    });

});
$(function() {

    $("a#update").click(function(){

        var curr_elem = $(this) ;
        var link = $(this).attr("href");

        $.ajax({
              type: "POST",
              url: link,
              success: function() 
              { 
                var text = curr_elem.parent().parent().find('span#sent_text').text();
                if (text == 'Completed')
                {
                    curr_elem.parent().parent().find('span#sent_text').html('In complete');
                    curr_elem.parent().parent().find('IMG').attr("src", "/static/images/check.jpeg");
                }
                else
                {
                    curr_elem.parent().parent().find('span#sent_text').html('Completed');
                    curr_elem.parent().parent().find('IMG').attr("src", "/static/images/unchecked.jpeg");
                }
               return false; 
              },
               error: function(xhr, status, error)
              {
                alert("Function failed!");
                return false; 
              }
        }); 

    });

});