错误:this.element.uniqueId不是函数。 JQuery UI。有人见过这个吗?

时间:2012-06-27 15:19:19

标签: javascript jquery html jquery-ui

<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/themes/ui-lightness/jquery-ui.css" />
<script type="text/javascript" src="../Content/Scripts/jquery.js"></script>
<script type="text/javascript" src="../Content/Scripts/jquery.ui.core.js"></script>
<script type="text/javascript" src="../Content/Scripts/jquery.ui.widget.js"></script>
<script type="text/javascript" src="../Content/Scripts/jquery.ui.position.js"></script>
<script type="text/javascript" src="../Content/Scripts/jquery.ui.menu.js"></script>
<script type="text/javascript" src="../Content/Scripts/jquery.ui.selectmenu.js"></script>
<script type="text/javascript" src="../Content/Scripts/jquery.ui.tabs.js"></script>

这是我的脚本和样式表导入的总和,但是当它试图将其中一个<select>元素“转换”为JQuery UI Selectmenu时,我在jquery.ui中的Mozilla Web Developer中收到此错误.selectmenu.js,并且不应用jquery esque主题。

我之前看到类似的错误是因为脚本在错误的顺序中很重要而且方法不存在,但似乎无法想到这里可能导致它的原因。

任何想法都会很精彩,如果需要可以提供更多代码,但只有一个<select>元素应用了$('#exampleSelect').selectmenu();

2 个答案:

答案 0 :(得分:5)

在黑暗中随机拍摄。根据{{​​3}},方法.uniqueId()仅在jQuery UI 1.9中引入。您的版本可能不支持所述方法,或者您可能混合使用不同的版本。

答案 1 :(得分:4)

更改 jquery.ui.selectmenu.js 中的第33行:

var selectmenuId = this.element.uniqueId().attr( "id" );

为:

var selectmenuId = this.element.attr( 'id' ) || 'ui-selectmenu-' + Math.random().toString( 16 ).slice( 2, 10 );

这有望奏效。