Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery.fn.extend,没有使用MVC3的方法_Jquery_Asp.net Mvc 3_Jquery Ui - Fatal编程技术网

jQuery.fn.extend,没有使用MVC3的方法

jQuery.fn.extend,没有使用MVC3的方法,jquery,asp.net-mvc-3,jquery-ui,Jquery,Asp.net Mvc 3,Jquery Ui,我想使用jQuery.fn.extend在视图中注册一个函数。因此,我在Asp MVC3应用程序的_layyt.cshtml文件中定义了它。下面是代码 <script type="text/javascript"> $.fn.extend({ tagBox :function(options) { } }); </script> 但是当我用chrome查看页面时,我看到一个错误 未捕获的TypeError:对象[Obje

我想使用jQuery.fn.extend在视图中注册一个函数。因此,我在Asp MVC3应用程序的_layyt.cshtml文件中定义了它。下面是代码

<script type="text/javascript">
    $.fn.extend({
            tagBox :function(options) { }
        }); 
</script>
但是当我用chrome查看页面时,我看到一个错误

未捕获的TypeError:对象[Object Object]没有方法“tagBox” d、 extend.\u Deferred.f.resolveWithjquery-1.5.1.min.js:19 d、 extend.readyjquery-1.5.1.min.js:19 c.addEventListener.A


我在这里做错了什么?

我想你把
$.fn.extend
或者干脆
$.extend
的用途弄糊涂了。这些用于将一个对象的值覆盖到另一个对象,并确保为该属性定义了一个值。我认为您正在寻找的是jquery插件。这是一个贝壳

(function($){

    var _defaults = {
        your:"defaults",
        you:"Want to extend"
    };

    $.fn.tagBox = function(options){

        var _opts = $.extend({}, _defaults, options);

        return this.each(function(){

        });
    };  
})(jQuery);

当我第一次开始学习如何编写它们时,我教了我很多基础知识,我经常回头看这个例子作为基础。

除了locrizak的优秀答案之外,如果您的代码仍然无法工作,这些脚本在呈现的HTML中以什么顺序出现

如果在加载jquery库之前声明了
$.fn.extend(
),它将不起作用。此外,如果在声明函数扩展之前执行视图中的
$('.tags').tagBox({maxTagCount:5,initialTags:[]);
,它将不起作用。脚本的顺序必须如下:

  • 加载jQuery库
  • 声明您的函数扩展
  • 使用/调用函数扩展

  • 如果这没有帮助,请尝试将呈现的HTML发布到浏览器中,以便我们可以检查并帮助您找出问题所在。

    感谢您的快速回复。我在使用$.fn.extend之前尝试了此操作,结果是相同的。这就是为什么我将代码更改为使用$.fn.extend。我将阅读您提供的文章,然后重试。我尝试了这也是错误所在。我也尝试了一些不同版本的jQuery,但仍然无法正确调用函数。
    (function($){
    
        var _defaults = {
            your:"defaults",
            you:"Want to extend"
        };
    
        $.fn.tagBox = function(options){
    
            var _opts = $.extend({}, _defaults, options);
    
            return this.each(function(){
    
            });
        };  
    })(jQuery);