我在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);
});
}
答案 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)
});
}