我动态加载我的jQuery和jQuery UI文件。 jQuery文件成功加载,但是当jQuery UI文件加载时发生错误
以下是控制台中显示的内容:Uncaught TypeError:无法读取未定义的属性“ui”
我的代码如下:
(function()
{
var jQuery;
if (window.jQuery === undefined)
{
var script_tag = document.createElement('script');
script_tag.setAttribute("type", "text/javascript");
script_tag.setAttribute("src",
"//code.jquery.com/jquery-1.11.0.min.js");
if (script_tag.readyState)
{
script_tag.onreadystatechange = function()
{
if (this.readyState === 'complete' || this.readyState === 'loaded')
{
scriptLoadHandler();
}
};
}
else
{
script_tag.onload = scriptLoadHandler;
}
(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
}
else
{
jQuery = window.jQuery;
main();
}
function scriptLoadHandler()
{
jQuery = window.jQuery.noConflict(true);
main();
}
function main() {
jQuery(document).ready(function($) {
jQuery.getScript('http://code.jquery.com/ui/1.11.1/jquery-ui.min.js', function() {
jQuery.noConflict(true);
});
};
})();
有人可以帮我这个吗?
答案 0 :(得分:4)
只需从noConflict调用中删除true即可;这放弃了对$的控制,但留下jQuery来使用jQuery UI:
/******** Called once jQuery has loaded ******/
function scriptLoadHandler() {
// Restore $ to its previous values and store the
// new jQuery in our local jQuery variable
jQuery = window.jQuery.noConflict(); // no argument!
// Call our main function
main();
}
答案 1 :(得分:0)
使用:
$(document).ready(function() {});
或
$(function() {});
这两个陈述实际上完全相同。所以第二个电话只是第一个电话的快捷方式。
$符号再次只是jQuery的快捷方式。如果您已将jQuery加载到您的网站中,则可以同时使用它们。
(function($){
}(jQuery));
这里你调用匿名函数(它有$作为参数)并传入jQuery对象。