类型错误i未定义

时间:2013-10-09 06:36:12

标签: jquery-plugins jquery-draggable

使用jquery draggable collision plugin在加载“Type Error is is undefined”的页面时抛出错误

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery UI Droppable - Default functionality</title>
<link rel="stylesheet" type="text/css" href="css/jquery-ui.css" />
<link rel="stylesheet" type="text/css" href="css/styles.css" />
<script type="text/javascript" src="js/jquery-1.9.1.js"></script>
<script type= "text/javascript" src="js/jquery-ui.js"></script>
<script type= "text/javascript" src="js/jquery-collision.min.js"></script>
<script type= "text/javascript" src="js/jquery-ui-draggable-collision.min.js"></script>
<script type= "text/javascript" src="js/common.js"></script>

</head>
<body>
<div id="header">Sprite Generator</div>

<div id="droppable" >
<div id="overLay">Drop Files Here</div>
</div>
<div id="cssDetails">
<div id="cssHead">CSS Data</div>
</div>
<div id="errorMessage"></div>
</body>
</html>

这是我使用的代码。请帮助,我不知道这里出了什么问题。

2 个答案:

答案 0 :(得分:3)

错误在于可拖动的碰撞插件文件。每次调用方法.data("draggable")时,都会返回一个未定义的值。

jQuery UI 1.9.2和1.10.3之间存在细微差别。在最后一个版本中,.data("draggable")已被.data("ui-draggable")替换。

你应该:

  • 使用旧版本的jQuery UI插件

  • 或使用上一版本,然后在jquery-ui-draggable-collision.min.js文件中将.data("draggable")替换为.data("ui-draggable")

就我自己而言,我使用了第二种解决方案。但是你的情况可能会有所不同,因为我不知道你现在使用的是哪个版本的jQuery UI插件。

答案 1 :(得分:1)

jQuery UI Draggable Collision的README读取:

  

加载jquery-ui-draggable-collision及其依赖项:

<script src="jquery-1.8.3.js"></script>
<script src="ui/jquery.ui.core.js"></script>
<script src="ui/jquery.ui.widget.js"></script>
<script src="ui/jquery.ui.mouse.js"></script>
<script src="ui/jquery.ui.draggable.js"></script>
<script src="jquery-collision-1.0.2.js"></script>
<script src="jquery-ui-draggable-collision-1.0.2.js"></script>

它没有解释为什么你需要单独加载模块,但我怀疑是某个地方发生了冲突。我尝试包含特定的单个文件(核心,小部件,鼠标,可拖动,碰撞和ui-draggable-collision),看看是否有效。如果您的问题没有更多信息,我很难尝试一系列具体的事情,但这可能是您最好的选择。