Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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后嵌入jquery脚本_Javascript_Jquery_Widget - Fatal编程技术网

Javascript 在小部件加载jquery后嵌入jquery脚本

Javascript 在小部件加载jquery后嵌入jquery脚本,javascript,jquery,widget,Javascript,Jquery,Widget,查看如何确认jquery已加载很有帮助。 我的小部件需要一个使用jquery编写的类。我可以在嵌入使用jquery构建的另一个类方面获得一些帮助吗? 谢谢, 下面是上面链接中的代码片段,在代码注释的最后部分添加了我的代码: (function(window, document, version, callback) { var j, d; var loaded = false; if (!(j = window.jQuery) || version > j.

查看如何确认jquery已加载很有帮助。 我的小部件需要一个使用jquery编写的类。我可以在嵌入使用jquery构建的另一个类方面获得一些帮助吗? 谢谢,

下面是上面链接中的代码片段,在代码注释的最后部分添加了我的代码:

    (function(window, document, version, callback) {
    var j, d;
    var loaded = false;
    if (!(j = window.jQuery) || version > j.fn.jquery || callback(j, loaded)) {
        var script = document.createElement("script");
        script.type = "text/javascript";
        script.src = "/media/jquery.js";
        script.onload = script.onreadystatechange = function() {
            if (!loaded && (!(d = this.readyState) || d == "loaded" || d == "complete")) {
                callback((j = window.jQuery).noConflict(1), loaded = true);
                j(script).remove();
            }
        };
        document.documentElement.childNodes[0].appendChild(script)
    }
})(window, document, "1.3", function($, jquery_loaded) { //my code added below
    var script_tag = document.createElement('script');
script_tag.setAttribute("type","text/javascript");
script_tag.setAttribute("src", "http://mysite.com/widget/slides.jquery.js");
(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);

$('#slides').slides({}); //this line gives an error.
});
现在,根据对这个问题的回答,我正在尝试以下内容(抛出错误的一行用注释标出):

//在确认嵌入jquery后调用此函数。{mysite}占位符在实际代码中不存在。
函数main(){
jQuery(文档).ready(函数($){
var css_link=$(“”{
rel:“样式表”,
键入:“文本/css”,
href:“http://mysite/widget/widget.css"
});
css_link.appendTo('head');
$('crf_widget')。在('')之后;
/*******加载HTML*******/
var jsonp_url=”http://mysite/widget.php?callback=?";
$.getJSON(jsonp_url,函数(数据){
$('crf#u widget_container').html(数据);
$('#类别选择')。更改(函数(){
警报(该值);
});
$.getScript(“http://mysite/widget/slides.jquery.js,函数(数据,文本状态,jqxhr){
警报(1);//点火正常
$('#slides')。slides({});//错误
});
});
});
}
错误1:$未定义…/slides.jquery.js?\u1349267810第22行
错误2:$(“#幻灯片”)。幻灯片不是函数…/widget.js?1341349266628第61行
$(“#幻灯片”)。幻灯片({});当我测试小部件的工作时,它工作。然而,当把它做成一个小部件时,上面的错误就是我所面临的

有人有更多的建议吗


在等待了几周之后,我从jquery类中提取了我需要的代码,并在确认jquery的负载后将其放入主体中。我本希望在加载jquery后导入jquery类,但我想不出来。

既然您已经加载了jquery,也许使用来获取幻灯片.jquery.js文件会更容易一些-类似这样:

<!-- language: lang-js -->
(function(window, document, version, callback) {
    var j, d, loaded = false;
    if (!(j = window.jQuery) || version > j.fn.jquery || callback(j, loaded)) {
        var script = document.createElement("script");
        script.type = "text/javascript";
        script.src = "/media/jquery.js";
        script.onload = script.onreadystatechange = function() {
            if (!loaded && (!(d = this.readyState) || d == "loaded" || d == "complete")) {
                callback((j = window.jQuery).noConflict(1), loaded = true);
                j(script).remove();
            }
        };
        document.documentElement.childNodes[0].appendChild(script)
    }
})(window, document, "1.3", function($, jquery_loaded) { //my code added below
    // use $.getScript
    $.getScript("http://mysite.com/widget/slides.jquery.js", function(data, textStatus, jqxhr) {
        $('#slides').slides({});
    });
});

(函数(窗口、文档、版本、回调){
变量j,d,加载=假;
if(!(j=window.jQuery)| version>j.fn.jQuery |回调(j,已加载)){
var script=document.createElement(“脚本”);
script.type=“text/javascript”;
script.src=“/media/jquery.js”;
script.onload=script.onreadystatechange=function(){
如果(!loaded&&(!(d=this.readyState)| | d==“loaded”| | d==“complete”)){
回调((j=window.jQuery.noConflict(1),loaded=true);
j(script.remove();
}
};
document.documentElement.childNodes[0]。appendChild(脚本)
}
})(窗口,文档,“1.3”,函数($,jquery_已加载){//下面添加了我的代码
//使用$.getScript
$.getScript(“http://mysite.com/widget/slides.jquery.js,函数(数据,文本状态,jqxhr){
$(“#幻灯片”)。幻灯片({});
});
});

在等待了几周之后,我从jquery类中获取了所需的代码,并在确认jquery的负载后将其放入主体中。我本想在jquery加载后导入jquery类,但我想不出来。

我已经更新了我的初始问题,以显示我正在使用的当前函数。它使用的是你建议的方法,但身体中的线条仍在抛出错误。我已经用普通的非小部件方法测试了这行抛出错误的代码,没有问题。因此,jquery在需要时似乎不可用。$.getScript块前面的代码没有给出问题,这是jquery支持的语法。什么错误?您确定存在
$(“#幻灯片”)
吗?为什么
$.getScript()
$.getJSON()
中,它应该在该函数之外,除非
$(“#幻灯片”)
在加载的HTML中。你听说过吗?我已经编辑了我的问题以显示错误。$。getScript()嵌套在getJSON()中,这正是您注意到的原因。我查看了yepnope.js,但我想知道是否有可能更正我当前的代码设置,因为我没有看到“make-a-widget”示例?
<!-- language: lang-js -->
(function(window, document, version, callback) {
    var j, d, loaded = false;
    if (!(j = window.jQuery) || version > j.fn.jquery || callback(j, loaded)) {
        var script = document.createElement("script");
        script.type = "text/javascript";
        script.src = "/media/jquery.js";
        script.onload = script.onreadystatechange = function() {
            if (!loaded && (!(d = this.readyState) || d == "loaded" || d == "complete")) {
                callback((j = window.jQuery).noConflict(1), loaded = true);
                j(script).remove();
            }
        };
        document.documentElement.childNodes[0].appendChild(script)
    }
})(window, document, "1.3", function($, jquery_loaded) { //my code added below
    // use $.getScript
    $.getScript("http://mysite.com/widget/slides.jquery.js", function(data, textStatus, jqxhr) {
        $('#slides').slides({});
    });
});