锚标记的文本不会使用javascript更改

时间:2012-04-02 19:20:16

标签: javascript jquery html

我执行ajax函数需要3秒+所以在这段时间我希望链接(下面的代码,图片中的1)的文本更改为“请稍候.. “。我尝试了下面的JavaScript代码,但是发生了什么是文本没有改变,函数正常执行。如果有人可以指出我的错误,请。

HTML:

<a id="emailGarageList" href="javascript:EmailGarageList(347)">Email Garage List...</a>

屏幕截图:

enter image description here

Javascript:

function EmailGarageList(fId) {
    $('#emailGarageList').text('Please wait...');
    $.ajax({
        type: "POST",
        url: "Default.aspx/EmailGarageList",
        data: "{'fId':" + fId + ",'userId':" + userId + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            alert("Garage List Emailed!");
        },
        error: function () {
            alert("Error :(");
        }
    });
    $('#emailGarageList').text('Email Garage List...');
};

4 个答案:

答案 0 :(得分:4)

$('#emailGarageList').text('Email Garage List...');放入您的成功函数中。否则它会改变,然后再改变回来。

答案 1 :(得分:3)

在$ .ajax回调函数中移动$('#emailGarageList').text('Email Garage List...');。 $ .ajax是一个异步调用,下面的文本会在完成ajax调用之前立即更新。

function EmailGarageList(fId) {
    $('#emailGarageList').text('Please wait...');
    $.ajax({
        type: "POST",
        url: "Default.aspx/EmailGarageList",
        data: "{'fId':" + fId + ",'userId':" + userId + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            alert("Garage List Emailed!");
            $('#emailGarageList').text('Email Garage List...');
        },
        error: function () {
            alert("Error :(");
        }
    });    
};

答案 2 :(得分:0)

我的猜测是jQuery Mobile(我假设您正在使用)正在修改DOM,因此您的选择器无法按您认为的那样找到$('#emailGarageList')。

答案 3 :(得分:0)

我认为您正在寻找beforeSend callback

$.ajax({
    // other stuff ...
    beforeSend: function () {
        $('#emailGarageList').text('Please wait...');
    }
});