在Document.ready

时间:2016-08-24 13:06:05

标签: javascript jquery

我在document.ready中有以下操作。 我尝试做的是有选择地删除ID为' _View_memberDirectory'的div。因此,我添加以下代码,如果它不属于我的函数,则可以使用以下代码。但是,当我在我的功能中使用它时它不起作用。目前,布尔值始终为true。有什么想法吗?

$("[id$='_View_memberDirectory']").bind('DOMNodeInserted', function (event) {
      $(this).empty();
});

我的剧本:

<script type="text/javascript">
    $(document).ready(function () {

        $(function () {
            var bIsContact;
            bIsContact = IsContact();
            if (bIsContact.responseText === "true") {
                     //does not work here
                $("[id$='_View_memberDirectory']").bind('DOMNodeInserted', function (event) {
                    $(this).empty();
                });

            }
            else {
                e.preventDefault;
            }
        });

      //works here <-------
    });

编辑:添加了IsContact()函数

function IsContact() {
        var friendId =  <%= Request.QueryString("UserID").ToString()%> + '';
        var sf = $.ServicesFramework(<%=ModuleId %>);
        var serviceUrl = sf.getServiceRoot('OmniBody');
        var obj = { "friendId": friendId };

        return $.ajax({
            type: "POST",
            cache: false,
            url: serviceUrl + "/ModuleTask/IsContact",
            beforeSend: sf.setModuleHeaders,
            contentType: "application/json; charset=utf-8",
            data: JSON.stringify(obj)
        }).done(function (result) {

        }).fail(function (xhr, result, status) {
            alert(result);
        });
    }

1 个答案:

答案 0 :(得分:0)

不建议在AJAX调用中使用async: false

相反,您可以尝试这样

$(document).ready(function() {

    $(function() {
        var bIsContact;
        IsContact().done(function(result) {
            if (result) { // assuming result is boolean value

                // do your stuff here
                $("[id$='_View_memberDirectory']").bind('DOMNodeInserted', function(event) {
                    $(this).empty();
                });

            } else {
                //something elase
            }
        }).fail(function(xhr, result, status) {
            alert(result);
        });
    });

    //works here <-------
});

function IsContact() {
    var friendId = <%= Request.QueryString("UserID").ToString()%> + '';
    var sf = $.ServicesFramework(<%=ModuleId %>);
    var serviceUrl = sf.getServiceRoot('OmniBody');
    var obj = {
        "friendId": friendId
    };
    return $.ajax({
        type: "POST",
        cache: false,
        url: serviceUrl + "/ModuleTask/IsContact",
        beforeSend: sf.setModuleHeaders,
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify(obj)
    });
}