Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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
Javascript 为什么这个jquery扩展不起作用?_Javascript_Jquery_N2cms - Fatal编程技术网

Javascript 为什么这个jquery扩展不起作用?

Javascript 为什么这个jquery扩展不起作用?,javascript,jquery,n2cms,Javascript,Jquery,N2cms,我有这个扩展功能,它似乎没有引起任何问题。但当我尝试使用它时,我得到一条错误消息:对象不支持属性或方法“n2name” 插件代码中未报告任何错误(下面粘贴的代码片段仅供参考,末尾有指向完整文件的链接) 有人知道为什么这不起作用吗 注意:我正试图解决这个开源项目的一个问题:可能还有更多关于Github bug的有用细节 抱歉,如果这个问题太模糊,而且代码段太长(大部分可能与此无关)。但任何帮助都将不胜感激 /** * n2name 0.2 */ (function($) { /* s

我有这个扩展功能,它似乎没有引起任何问题。但当我尝试使用它时,我得到一条错误消息:对象不支持属性或方法“n2name”

插件代码中未报告任何错误(下面粘贴的代码片段仅供参考,末尾有指向完整文件的链接)

有人知道为什么这不起作用吗

注意:我正试图解决这个开源项目的一个问题:可能还有更多关于Github bug的有用细节

抱歉,如果这个问题太模糊,而且代码段太长(大部分可能与此无关)。但任何帮助都将不胜感激

/**
* 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完整源代码,如果上面的代码片段没有用处:

错误“对象不支持属性或方法
”(IE)和“
不是函数”(Chrome)通常意味着您的jquery插件在被调用之前没有成功加载

这可能是由于请求失败(检查开发工具的“网络”选项卡)、忘记/错误放置插件的
脚本
标记或具有
延迟
/
异步
属性的
脚本
标记造成的。另一个可能的原因是插件的脚本包含语法错误(在这种情况下,请检查开发工具的控制台选项卡)

在同一个页面中有多个版本的jQuery(如OP的链接GH问题中所评论的)是另一种可能性,可以将插件包装在
(function(){}(jQuery))样板文件仅在加载插件脚本时添加到
window.jQuery
引用的jQuery对象中


在这个特定的案例中,OP在从VS中的localhost加载插件时遇到问题

我见过类似的问题,我只想补充一点,从
文件://
URI方案加载文件时,使用无协议URL(例如:
//somecdn.com/library.js
)是无效的。这是因为无协议URL“继承”父文档中使用的协议,并且
文件://
不是协议。如果您从本地服务器加载它(例如,通过
http
提供的父文档,如
http://localhost/library.js
)无协议URL应该可以正常工作。

错误“对象不支持属性或方法”(IE)和“
不是函数”(Chrome)通常意味着您的jQuery插件在被调用之前没有成功加载

这可能是由于请求失败(检查开发工具的“网络”选项卡)、忘记/错误放置插件的
脚本
标记或具有
延迟
/
异步
属性的
脚本
标记造成的。另一个可能的原因是插件的脚本包含语法错误(在这种情况下,请检查开发工具的控制台选项卡)

在同一个页面中有多个版本的jQuery(如OP的链接GH问题中所评论的)是另一种可能性,可以将插件包装在
(function(){}(jQuery))样板文件仅在加载插件脚本时添加到
window.jQuery
引用的jQuery对象中


在这个特定的案例中,OP在从VS中的localhost加载插件时遇到问题


我见过类似的问题,我只想补充一点,从
文件://
URI方案加载文件时,使用无协议URL(例如:
//somecdn.com/library.js
)是无效的。这是因为无协议URL“继承”父文档中使用的协议,并且
文件://
不是协议。如果您从本地服务器加载它(例如,通过
http
提供的父文档,如
http://localhost/library.js
)无协议URL应该可以正常工作。

在插件加载到页面之前(或者根本没有加载插件),您似乎正在调用
$().n2name()
.jquery-1.9.1-min.js和jquery ui后面的
jquery.n2name.js
(定义了上述脚本)将包含在
中。失败的调用位于
标记的前面。这会证实你的怀疑吗?确保插件脚本标签上没有
defer
/
async
属性,并且它的路径是正确的,并且没有加载错误-或者只需打开控制台并键入
jQuery.fn.n2name
,查看它是否实际加载。这样做了。非常感谢你!由于某种原因,我的Visual Studio副本似乎无法从加载资源(HTTP请求在脚本调试器中显示为“已取消”)。当我把它上传到网络服务器时,它工作了。奇怪。。。谢谢你的帮助!在插件加载到页面(或者根本没有加载)之前,您似乎正在调用
$().n2name()
。这个
jquery.n2name.js
(上面定义了脚本)就包含在jquery-1.9.1-min.js和jquery-ui之后的
中。失败的调用位于
标记的前面。这会证实你的怀疑吗?确保插件脚本标签上没有
defer
/
async
属性,并且它的路径是正确的,并且没有加载错误-或者只需打开控制台并键入
jQuery.fn.n2name
,查看它是否实际加载。这样做了。非常感谢你!由于某种原因,我的Visual Studio副本似乎无法从加载资源(HTTP请求在脚本调试器中显示为“已取消”)。当我把它上传到网络服务器时,它工作了。奇怪。。。谢谢你的帮助!