函数不会在.html()jQuery之后调用

时间:2012-08-14 00:29:31

标签: javascript jquery

GrabOldMessages()运行后无法运行html()函数。以下是我的代码。使用jQuery版本1.7.2,我想我正确地调用它,我忽略了什么?请帮我找出错误。如果您需要我提供更多信息,请告诉我。感谢您抽出宝贵时间来帮助我。

//GRAB NEW MESSAGES
function GrabNewMessages(){
    var doIB = encodeURIComponent("GET_DATA"); 
    $.ajax({ 
        type: 'POST', url: 'app/pull_data_files/inbox_NM_array.php',  dataType: "json",  data: { getInbox: doIB }, 
        success: function(inbox_NM_data) {                 
          if(inbox_NM_data[1] == 'true'){$('#inbox_NMlist_html').html(inbox_NM_data[0], function(){ GrabOldMessages(); });}
          else{alert("Didn't work");}
        }  
    }); 
return false;

}

//GRAB OLD MESSAGES
function GrabOldMessages(){

    var doIB = encodeURIComponent("GET_DATA"); 
    $.ajax({ 
        type: 'POST', url: 'app/pull_data_files/inbox_OM_array.php',  dataType: "json",  data: { getInbox: doIB }, 
        success: function(inbox_OM_data) {                 
          if(inbox_OM_data[1] == 'true'){$('#inbox_OMlist_html').html(inbox_OM_data[0], function(){GoToInbox();});}
          else{alert("Didn't work");}

        }  
   }); 
return false;
}

3 个答案:

答案 0 :(得分:3)

.html() method不带两个参数, 字符串或函数,而不是两者。当它需要一个函数时,它不是一个完成回调。

要在设置html后运行一个函数,只需在下一行调用该函数,所以更改:

success: function(inbox_NM_data) {                 
    if(inbox_NM_data[1] == 'true'){
         $('#inbox_NMlist_html').html(inbox_NM_data[0], function(){ GrabOldMessages(); });
    } else{
         alert("Didn't work");}
    } 

要:

 success: function(inbox_NM_data) {                 
    if(inbox_NM_data[1] == 'true'){
         $('#inbox_NMlist_html').html(inbox_NM_data[0]);
         GrabOldMessages();
    } else{
         alert("Didn't work");}
    }

(在GrabOldMessages()函数中类似。)

答案 1 :(得分:2)

您正在html()中指定第二个参数,该参数可以是无或一个。

尝试使用此成功版本代替您的第一个代码段。

 success: function(inbox_NM_data) {
    if (inbox_NM_data[1] == 'true') {
        $('#inbox_NMlist_html').html(inbox_NM_data[0]);
        GrabOldMessages();
    }
    else {
        alert("Didn't work");
    }
}

这是第二个代码段:

success: function(inbox_OM_data) {
    if (inbox_OM_data[1] == 'true') {
        $('#inbox_OMlist_html').html(inbox_OM_data[0]);
        GoToInbox();
    }
    else {
        alert("Didn't work");
    }

}

答案 2 :(得分:-3)

此代码100%正常工作

$('#myTabContent').html(data);    
afterHTML();

function afterHTML(){           
    $('.unit').change(function(){
        var u=($(this).val()).split('/');
        $('.perunit').html(u[1]);
    });    
}