从google API将requirejs与Jquery一起使用时,Jquery发生冲突
在项目中导入更多jquery文件时出现问题冲突。这里的上下文是:我正在运行一个没有导入requirejs的项目,在这个项目上,我已经导入了jquery和一些jquery插件,效果很好。现在,我需要使用另一个站点的服务,它需要使用requirejs从该站点加载一些javascript文件:从google API将requirejs与Jquery一起使用时,Jquery发生冲突,requirejs,jquery,Requirejs,Jquery,在项目中导入更多jquery文件时出现问题冲突。这里的上下文是:我正在运行一个没有导入requirejs的项目,在这个项目上,我已经导入了jquery和一些jquery插件,效果很好。现在,我需要使用另一个站点的服务,它需要使用requirejs从该站点加载一些javascript文件: prefixUrl = "http://mysite.com"; require = { baseUrl : prefixUrl + "/js", waitSeconds : 30, path
prefixUrl = "http://mysite.com";
require = {
baseUrl : prefixUrl + "/js",
waitSeconds : 30,
paths : {
"jquery" : "http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min",
"jquery.validate" : "/jquery.validate.min-1.8.1",
"jquery.string" : "/jQueryString-2.0.2-Min",
"jquery.cookie" : "/jquery.cookie",
"jquery.lightbox" : "/lightbox/jquery.lightbox",
"thickbox" : "/thickbox/thickbox",
"marketo.form" : "mktFormSupport",
"templates" : "../templates",
"login" : "/cloud-workspaces-extension/js/login",
"rememberme-checkbox" : "/platform-extension/javascript/iphone-style-checkboxes"
},
shim : {
'jquery.validate' : [ "jquery" ],
'jquery.string' : [ "jquery" ],
'jquery.cookie' : [ "jquery" ],
'jquery.lightbox' : [ "jquery" ],
"thickbox" : [ "jquery" ],
"marketo.form" : {
deps : [ "jquery" ],
exports : "Mkto"
},
"rememberme-checkbox" : [ "jquery" ]
},
deps : [ "jquery", "jquery.validate", "jquery.string", "jquery.cookie" ].
callback: function(){
// handle
}
}
如您所见,它将从googleapis加载更多的jquery文件1.7。这意味着它将在我的项目(我没有使用jquery noConflict)和一些jquery插件上覆盖当前的jquery,这些插件在页面加载和文档准备就绪被重置时初始化,并删除实例的句柄
那么,有人能帮我找到另一个解决方案吗?我可以在我的网站上使用jquery noconflict来处理当前的问题,但这意味着我将替换很多在我的网站上运行良好的javascript。因此,我正在寻找导入服务和解决方法的好方法。我不理解这个问题。你不能从上面的RequireJS配置中删除已经单独加载的脚本吗?例如,删除jQuery的条目?我不能删除从requirejs加载的脚本,我可以更改实例jQuery,但这意味着我需要更改init jQuery插件在当前站点上使用的所有其他脚本。我真的不想这么做:(这里的问题是当前和init插件上加载的jquery比从requirejs加载的jquery要早。因此,当前的jquery已经被过度使用了。例如:当您调用var obj=new Object()重置旧的实例时,有人能帮我解决这个问题吗?