Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax禁用弹出菜单插件_Javascript_Jquery_Html_Asp.net_Ajax - Fatal编程技术网

Javascript 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

我正在ASP.NET Web表单项目中使用此JavaScript弹出菜单:

在我调用包含Ajax代码的JavaScript函数之前,该代码工作正常。这个函数和fiddle中给出的函数之间没有关系或公共标记(或标记类)。但是每当我调用这个Ajax函数时,它都会禁用弹出菜单,当我单击显示这个弹出菜单的按钮时,什么也不会发生。但是在控件到达这个Ajax函数之前,这个弹出菜单工作正常。我试图检查浏览器控制台,但它没有显示错误或警告。以下是我的Ajax函数的代码:

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>&nbsp;<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的此功能。请参阅我的答案。:)