0

我们在 sitemesh 装饰器 JSP 的 header 标记中加载 jquery 脚本,如下所示:

<head>
<script src="${prefix}/resources/js/jquery/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="${prefix}/resources/js/jquery/jquery-ui-1.8.20.custom.min.js" type="text/javascript"></script>
</head>

现在我正在创建一个自动完成组合框,例如 @ http://jqueryui.com/resources/demos/autocomplete/combobox.html

单击标签时,我将另一个 jsp 加载到如下对话框中:

$.ajax({
url: <some url>,
success: <create my dialog>
});

对话框中的这个 JSP 也被 sitemesh 修饰,并且在它的标记中具有相同的脚本。对话工作正常,但现在在这个 ajax 调用之后我的 combobox() 停止工作并且在控制台上的错误是:

$().combobox 不是一个函数..

这对我来说是一个紧迫的缺陷。以前有人遇到过这个问题吗?它与 jquery 脚本缓存或加载有关吗?

我们可以在 Firefox 和 IE 9 中重现此问题。

4

1 回答 1

1

ComboBox 不是 jQueryUI 的典型功能。如果您检查您提供的演示页面的页面源代码,您会注意到该小部件是在从第 31 行开始的脚本标记中声明的:

    <script>
(function( $ ) {
    $.widget( "ui.combobox", { //... et cetera

在组合框演示中显示的 JS 文件中的某处包含小部件定义,并查看这是否解决了您的问题。

于 2012-12-19T18:11:08.053 回答