2014-04-12 134 views
0

我建立简单的网站,在这我可以创建图形,并使用它的一些算法与其他的jQuery/JS代码中使用它的时候。有可能会有很多算法,所以我必须考虑方法,我将如何输出这么多的数据。jQuery的标签错误一些标签

我有一些HTML代码(字段集一些,输入,按钮等)用于设置图和为相同的算法部分的一部分。

我已经分成不同的部分,以不同的标签。

在第一个选项卡,在这里我设置了图形,我必须使用jQuery(获得的输入值,来阻止/解锁某些字段等等),在另一个选项卡我在此刻简单的文本。

的问题是:当我刚装页,所有标签工作正常。当我点击不同的标签时,div中的数据正在变化。但是,如果我首先尝试创建一些顶点或边或者对图进行任何操作,之后我会尝试激活另一个选项卡,从而出现错误。看图像,请:

error

它说:

TypeError: elem.nodeName.toLowerCase is not a function 

var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; 

它指的是3378行jquery-1.10.2.js文件。

注意,如果我没有在第一个标签上(没有尝试管理顶点/边缘/等),并按任何选项卡都工作正常。

这不是我的错误。看起来这是兼容性错误。我不明白。你能为我澄清这一点吗?什么会导致此错误,以及我如何删除它?谢谢。

这是我的html代码head部分:

<!-- for tabs --> 
<script src="http://code.jquery.com/jquery-1.10.2.js"></script> 
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"> 
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script> 

<!-- for graph dracula framework --> 
<script type="text/javascript" src="js/raphael-min.js"></script> 
<script type="text/javascript" src="js/dracula_graffle.js"></script> 
<script type="text/javascript" src="js/dracula_graph.js"></script> 

<!-- my files --> 
<script type="text/javascript" src="settings.js"></script> 
<script type="text/javascript" src="algorithms.js"></script> 

<script> 
$(function() { 
    $("#tabs").tabs(); 
}); 
</script> 

回答

0

这将正常工作,如果我在jQuery脚本重写代码的一部分围绕3378行。重写acceptData方法:

// A method for determining if a DOM node can handle the data expando 
acceptData: function(elem) { 
    if (elem.nodeName) { 
     var match = false; 
     if (typeof elem.nodeName.toLowerCase != 'undefined') 
      match = jQuery.noData[ elem.nodeName.toLowerCase() ]; 

     if (match) { 
      return !(match === true || elem.getAttribute("classid") !== match); 
     } 
    } 

    return true; 
} 

如果我们处理错误,那么所有工作正常。这是非常肮脏的解决方案,但它只是实验室工作,所以我不在乎:)我希望这个答案会帮助某人。