【发布时间】:2013-08-16 23:48:16
【问题描述】:
我有这个扩展功能,它似乎没有造成任何问题。但是当我尝试使用它时,我会收到一条错误消息:对象不支持属性或方法'n2name'
插件代码中没有报错(sn-p粘贴在下面供参考,末尾有完整文件的链接)。
有人知道为什么这不起作用吗?
注意:我正在尝试解决这个开源项目的一个问题:https://github.com/n2cms/n2cms/issues/279,并且可能有更多关于 Github 错误的有用细节。
对不起,如果这个问题太模糊,并且对于长代码 sn-p(大部分可能不相关)。但任何帮助都将不胜感激
/**
* n2name 0.2
*/
(function($) {
/* some code removed for brevity */
$.fn.n2name = function(options) {
var invokeUpdateName = function(){
updateName(options.titleId, options.nameId, options.whitespaceReplacement, options.toLower, options.replacements, options.keepUpdatedBoxId);
};
if(options.keepUpdatedBoxId){
/* more code removed for brevity */
}
};
})(jQuery);;
链接到jquery.n2name.js完整源码,如果上面的sn-p代码没用的话:https://github.com/n2cms/n2cms/blob/4469580fcdd9c91f7576f07c3d2c8a4479ed6ce9/src/Mvc/MvcTemplates/N2/Resources/Js/plugins/jquery.n2name.js
【问题讨论】:
-
在插件加载到页面之前(或者根本没有加载),您似乎在调用
$().n2name()。 -
这个
jquery.n2name.js(上面定义了上面的脚本)在jquery-1.9.1-min.js和jquery-ui之后被包含在<head>中。失败的调用位于</body>之前的<script>标记中。这会证实你的怀疑吗? -
确保插件脚本标签上没有
defer/async属性,并且它的路径正确并且没有加载错误 - 或者只需打开控制台并输入jQuery.fn.n2name看看它是否真的被加载了。 -
做到了。非常感谢!看起来我的 Visual Studio 副本由于某种原因无法从 localhost 加载资源(HTTP 请求在脚本调试器中显示为“已取消”)。当我将它上传到网络服务器时,它可以工作。奇怪...感谢您的帮助!
标签: javascript jquery n2cms