在ajax调用后第二次未找到jquery ui组合框

在ajax调用后第二次未找到jquery ui组合框,jquery,autocomplete,combobox,sitemesh,Jquery,Autocomplete,Combobox,Sitemesh,我们正在sitemesh decorator JSP的标题标记中加载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" t

我们正在sitemesh decorator JSP的标题标记中加载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>

现在我正在创建一个自动完成的组合框,如@

单击标记时,我正在将另一个jsp加载到一个对话框中,如下所示:

$.ajax({
url: <some url>,
success: <create my dialog>
});
$.ajax({
网址:,
成功:
});
这个JSP内部对话框也由sitemesh修饰,并且在它的标记中有相同的脚本。 对话框工作正常,但现在在这个ajax调用my combobox()停止工作后,控制台上的错误是:

$()。组合框不是函数

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


我们可以在firefox和IE 9中重现这个问题。

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

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

(函数($){
$.widget(“ui.combobox”、{/…等等

将combobox演示中出现的小部件定义包含在JS文件中的某个地方,看看这是否解决了您的问题。

您可以显示您的实际代码,或者在JSFIDLE上显示您的问题的演示吗?您是否看到任何错误?Javascript错误?问题是我的combobox Javascript代码在本地脚本中在ajax调用中没有重新加载js文件。我将combobox组件代码移动到一个通用的js中,解决了这个问题。