使用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>
这是我使用的代码。请帮助,我不知道这里出了什么问题。
答案 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),看看是否有效。如果您的问题没有更多信息,我很难尝试一系列具体的事情,但这可能是您最好的选择。