Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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
Php 代码在JSFIDLE中工作,但当我将所有代码放入我的网站时就不工作了_Php_Javascript_Jquery_Html - Fatal编程技术网

Php 代码在JSFIDLE中工作,但当我将所有代码放入我的网站时就不工作了

Php 代码在JSFIDLE中工作,但当我将所有代码放入我的网站时就不工作了,php,javascript,jquery,html,Php,Javascript,Jquery,Html,我的目标是在iframe的每一侧都有一个按钮,其中包含一个日历,可以在单个iframe中在日历1和日历2之间来回切换 有什么建议吗 |arrowLeft| |-----Iframe-------| |arrowRight| 代码在中工作,但在我将所有代码放入网站时不工作 为什么呢 HTML: <p id="toggle"> <span> Left </span> <span> </span> </p> <div

我的目标是在iframe的每一侧都有一个按钮,其中包含一个日历,可以在单个iframe中在日历1和日历2之间来回切换

有什么建议吗

|arrowLeft| |-----Iframe-------| |arrowRight|
代码在中工作,但在我将所有代码放入网站时不工作

为什么呢

HTML:

<p id="toggle">
<span> Left </span>
<span> </span>
</p>

<div id="left"> <iframe>LEFT CONTENT</iframe> L</div>
<div id="right"> <iframe>RIGHT CONTENT</iframe>R </div>

<p id="toggle">
<span></span>
<span> Right </span></p>
脚本:

$('#toggle > span').click(function() {
   var ix = $(this).index();

   $('#left').toggle( ix === 0 );
   $('#right').toggle( ix === 1 );
});

既然您说您已经加载了jquery

可能您的onclick setter在加载文档之前运行jquery代码,因此此时document.body中没有要设置的元素

在JSFIDLE“无库”中,纯JS代码默认包装为:

window.onload=function(){
// your code here
};
这应该已经奏效了

当您在左侧的选项面板中的框架和扩展下选择默认选项“onLoad”时,JSFIDLE就是这么做的

如果选择“onDomready”,则代码当前将封装在名为VanillaRunOnDomReady的函数中,如下所示:

var VanillaRunOnDomReady = function() {
// your code here
}

var alreadyrunflag = 0;

if (document.addEventListener)
    document.addEventListener("DOMContentLoaded", function(){
        alreadyrunflag=1; 
        VanillaRunOnDomReady();
    }, false);
else if (document.all && !window.opera) {
    document.write('<script type="text/javascript" id="contentloadtag" defer="defer" src="javascript:void(0)"><\/script>');
    var contentloadtag = document.getElementById("contentloadtag")
    contentloadtag.onreadystatechange=function(){
        if (this.readyState=="complete"){
            alreadyrunflag=1;
            VanillaRunOnDomReady();
        }
    }
}

window.onload = function(){
  setTimeout("if (!alreadyrunflag){VanillaRunOnDomReady}", 0);
}
请注意,这基本上与此答案中的第一个选项相同,但随后是JQuery方式

如果在JSFIDLE中加载JQuery库时选择选项“onDomready”,那么代码将封装在:

$(function(){
// your code here
});
正如ErikE在下面的评论中指出的,既然您已经加载并使用了JQuery,那么您可能还想使用另一种JQuery方式:

$(document).ready(function() { 
// your code here
}); 
最后,正如埃里克在他对你的问题的评论中指出的,我忽略了一个严重的问题,id是独一无二的。而您为这两个段落都提供了id切换。
相反,您应该给他们类切换,并按类选择元素以分配onclick函数。

可能是个愚蠢的问题,但您是否正在加载jQuery脚本本身?因为你没有发布你的全部代码,所以很难说-哇,这不是你今天第三次问同样的问题吗?你在副本中得到的所有其他答案有什么问题?是的,但没有人给我一个解决方案。所以我会贴10万次,直到我得到一个好的答案。感谢您不必要的抱怨:Fred-是的,我有’:/i不知道为什么它对我不起作用,我将所有代码都放在适当的位置,并链接了1.9.1 jQuery脚本,欢迎你:但作为一个新用户,你可能会知道,问同一个问题“100000次,直到你得到一个好答案”充其量只是“皱眉头”,所以……欢迎你。请注意,我冒昧地更改了你问题的标题,因此很明显,你到底在哪里问了一些不同的问题!在以后的问题中,请记住这一点。我建议使用$document.readyfunction{};而不是onload。@ErikE:这确实是另一个选项,但是jquery将不再是可选的,而是一个依赖项。因此,我选择解释为什么代码在JSFIDLE中工作,而不是在他的网站上,希望它能更好地用于其他人,以及更新的标题。这就是JSFIDLE在默认情况下的工作方式,可以通过右键单击输出窗口并查看源代码看到。他已经在使用jQuery,因此没有任何可选内容???关于ready和onload,这只是JSFIDLE中的一个选项:在左侧的选项面板中,在框架和扩展下,将下拉列表从onload更改为onDomready。该事件可以在加载事件之前运行,当存在加载的资源(如图像)时,这可能是一个真正的问题。load仅在图像加载完成后激发,但用户可以在此之前与页面交互。所以ready允许您的脚本在DOM可以被操作时尽快运行,这样用户就不会有奇怪的事情发生或预期的事情没有发生。2.要成功完成1,所有真正困难的跨浏览器工作都已经为您完成。
$(function(){
// your code here
});
$(document).ready(function() { 
// your code here
});