【问题标题】:Object doesn't support property or method jquery plugin对象不支持属性或方法 jquery 插件
【发布时间】:2015-11-21 13:19:15
【问题描述】:

我正在尝试扩展现有的 jquery 插件,如下所示。

 $.fn.cslide = function (options) { //added options & settings
    var settings = $.extend({
        Model : null
    })
    this.each(function () {
        //init code etc etc
        var modelDataJSON = null;

        if (settings.Model) {
            modelDataJSON = settings.Model;
        }
        //function declarations and implementations
    }
}

到目前为止一切都很好。但是当我运行这段代码时,

<script type="text/javascript">
    $("#cslide-slides").cslide(@Html.Raw(JsonConvert.SerializeObject(Model)));
</script>

他不识别JSON并返回

对象不支持属性或方法

作为错误。这是我第一次扩展现有的 jquery 插件,所以我遵循了以下指南。

Jquery Plugin Tutorial

各位好心人能指出我正确的方向吗?

我尝试了以下事情

  • 通过发送字符串
  • 通过发送静态 json
  • $("#cslide-slides").cslide({ @Html.Raw(JsonConvert.SerializeObject(Model)) });

【问题讨论】:

    标签: javascript jquery json asp.net-mvc-5 json.net


    【解决方案1】:

    您没有将options 对象作为extend 语句中的第二个参数传递。此外,您最好用分号结束该语句

    var settings = $.extend({
        Model : null
    }, options);
    

    由于$.extend 有效地合并了后面的对象参数的内容,您总是需要至少两个参数才能使语句有意义。

    【讨论】:

    • 半栏在那里。我猜复制粘贴失败
    猜你喜欢
    • 2013-03-23
    • 2019-03-29
    • 2018-01-11
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 2011-08-25
    相关资源
    最近更新 更多