无法通过jQuery ajax调用JS函数

时间:2011-12-08 16:25:11

标签: javascript jquery

我正在研究javascript中的一些遗留代码,我遇到了一个问题,我无法解决。

首次加载文档时,会调用名为addDecisionStateDetailsFields()的JS函数。此方法生成HTML,并将其附加到某个divCtrl C, Ctrl V版本位于pastebin.

因此,当文档首次加载时,我会获得所需的HTML。但在另一种情况下,我必须通过AJAX调用相同的函数,我做了类似的事情:

function editSPDecision(decision){
    $('#serviceProcedureAddDecision').css('display', 'none');
    jQuery.ajax({
        type:'POST',
        data: { 'decisionId': decision.id, 'authorizationId': ${authorizationId} },
        url:'../editDecision/${id}',
        success: function(data,textStatus) {
            jQuery('#serviceProcedureEditDecision').html(data);
        },
        complete: function(XMLHttpRequest,textStatus) {
            attachDatePickerClasses();
            addDecisionStateDetailsFields("spDecision_approve", "approveDiv", "Approve", "${ReviewerApproveReason.getValueCommaSeperated()}", "${ReviewerApproveReason.getNameCommaSeperated()}");
        }
    });
}

在这里,我使用正确的参数调用了方法addDecisionStateDetailsFields()。但是在AJAX调用完成后,我无法将生成的HTML附加到页面的HTML中。

要进行交叉检查,我在方法中放了一个alert,在AJAX调用完成后,实际上调用了该方法,只是生成的HTML没有附加到div。我在这里缺少什么东西吗?

1 个答案:

答案 0 :(得分:-1)

之前的addDecisionStateDetailsFields内
$('#' + masterParentDiv).append(generatedStr);
你能做到吗

alert($('#' + masterParentDiv).length);

这会告诉你是否找到了masterParentDiv,如果发现你应该找回0以外的东西。

不是100%肯定我会说,但是,改变

$('#' + masterParentDiv).append(generatedStr);

jQuery('#' + masterParentDiv).append(generatedStr);