jQuery.fn.extend,没有使用MVC3的方法
我想使用jQuery.fn.extend在视图中注册一个函数。因此,我在Asp MVC3应用程序的_layyt.cshtml文件中定义了它。下面是代码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
<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:[]);
,它将不起作用。脚本的顺序必须如下:
如果这没有帮助,请尝试将呈现的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);