0

我创建了一个非常小的 mvc4 互联网应用程序,它在主页上有一个自动完成文本框。一切正常,直到我使用 nuget 包管理器将 jquery 更新到版本 1.8.2,从那时起我收到Microsoft JScript runtime error: Object doesn't support this property or method此函数引发的错误:

function reduce( elem, size, border, margin ) {
    $.each( side, function() {
    size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0;
        if ( border ) {
            size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0;
        }
        if ( margin ) {
            size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0;
        }
    });
    return size;

jquery-ui-1.8.20.js文件中。

这就是我在_Layout.cshtml页面中调用脚本和样式的方式:

@Styles.Render("~/Content/css")
@Styles.Render("~/Content/themes/base/css")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
@RenderSection("scripts", required: false)

和带有文本框的主页:

  @using (Html.BeginForm("AutoComplete", "Home", FormMethod.Get, new { style = "text-align: center;" }))
{
    <input  type="text"  id="autocomplete"  name="key"  data-autocomplete=" @Url.Action("AutoCompleteData", "Home")"  /> 
}
@section scripts{
    <script type="text/javascript">
        $(document).ready(function () {
            $('#autocomplete').each(function () {
                $(this).autocomplete({
                    source: $(this).attr('data-autocomplete')
                });
            });
        });
    </script>
}

我尝试更改脚本和样式调用的顺序,但没有帮助。
相同的代码在更新之前完美运行。
任何帮助,将不胜感激。

编辑: 我下载了最新的 jquery-ui 文件并将它们添加到我的项目中。我现在没有收到任何错误,但是当在文本框中输入内容时,它看起来像这样:(自动完成
建议隐藏了文本框的一部分并且项目符号可见),刷新后建议位置很好,但项目符号仍然可见.

4

2 回答 2

0

.curCSS() 已被弃用一段时间,现在已从 jQuery 中移除。
必须用 .css() 方法替换它。尝试使用最新版本的 jQuery UI。
http://bugs.jquery.com/ticket/11921

于 2012-11-14T08:33:02.583 回答
0

所以我下载了最新的 jquery 文件并替换了 nuget 安装的那些,不走运!最终我复制了内容目录和脚本目录形成一个新的 mvc4 项目,一切正常。

于 2012-11-15T16:26:11.887 回答