Javascript Ajax禁用弹出菜单插件
我正在ASP.NET Web表单项目中使用此JavaScript弹出菜单: 在我调用包含Ajax代码的JavaScript函数之前,该代码工作正常。这个函数和fiddle中给出的函数之间没有关系或公共标记(或标记类)。但是每当我调用这个Ajax函数时,它都会禁用弹出菜单,当我单击显示这个弹出菜单的按钮时,什么也不会发生。但是在控件到达这个Ajax函数之前,这个弹出菜单工作正常。我试图检查浏览器控制台,但它没有显示错误或警告。以下是我的Ajax函数的代码:Javascript Ajax禁用弹出菜单插件,javascript,jquery,html,asp.net,ajax,Javascript,Jquery,Html,Asp.net,Ajax,我正在ASP.NET Web表单项目中使用此JavaScript弹出菜单: 在我调用包含Ajax代码的JavaScript函数之前,该代码工作正常。这个函数和fiddle中给出的函数之间没有关系或公共标记(或标记类)。但是每当我调用这个Ajax函数时,它都会禁用弹出菜单,当我单击显示这个弹出菜单的按钮时,什么也不会发生。但是在控件到达这个Ajax函数之前,这个弹出菜单工作正常。我试图检查浏览器控制台,但它没有显示错误或警告。以下是我的Ajax函数的代码: var curevaldiv, ecou
var curevaldiv, ecount = 0;
function SaveAll() {
var gifurl = '<data url of gif animation';
var evalDivs = $("div.evld");
if (evalDivs.length > 0) {
evalDivs.html("<img src='" + gifurl + "' alt='Please wait. ' style='height:35px'/> <span style='font-size: medium'>Evaluating...</span>");
var i; var infoids = '';
for (i = 0; i < evalDivs.length; i++) {
curevaldiv = evalDivs[i];
infoids = infoids + curevaldiv.dataset.infoid + ';';
}
SendToServer(3,
{ "InfoIDs": infoids },
null,
function (data) {
if (data.rstat != -1) {
var infoid, infoval;
var infovals = data.rhtml.split(';');
for (var j = 0; j < infovals.length; j++) {
infoid = infovals[j].split(':')[0];
infoval = infovals[j].split(':')[1];
$('#val' + infoid).html("<i class='fa fa-calculator'></i> <span class='counter'>" +
(infoval == "[ERROR]" ? "<font color='red'><small><i class='fa fa-exclamation-circle'></i> ERROR</small></font>" : infoval) +
"</span>");
}
ecount++;
}
else
curevaldiv.innerHTML = "<font color='red'><small><i class='fa fa-exclamation-circle'></i> ERROR</small></font>";
},
function () {
curevaldiv.innerHTML = "<font color='red'><small><i class='fa fa-exclamation-circle'></i> ERROR</small></font>";
});
}
}
var curevaldiv,ecount=0;
函数SaveAll(){
var gifull='感谢@eck建议Chrome的中断功能。它帮助我检测DOM的中断位置。我跟踪函数调用序列,找到一个函数,该函数将包含弹出菜单HTML的div
的HTML设置为null
,然后再次将其重置为弹出菜单的HTML.But该插件是在以前的弹出菜单的HTML上调用的。我删除了该代码,现在它工作正常。是否有可能用AJAX调用的结果替换弹出菜单的某些部分?@tvanfosson我使用Firefox和IE的Inspect元素进行了检查,但在AJAX调用后,我发现弹出菜单代码中没有替换项。我会尝试使用Chrome的“Break on>subtree修改”以确保弹出菜单不会被操纵。我的第一个猜测是,您以某种方式破坏了DOM。如果不查看其余代码,很难判断。感谢@eck建议Chrome的此功能。请参阅我的答案。:)