Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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 从PHP调用JS函数不起作用_Javascript_Php_Html - Fatal编程技术网

Javascript 从PHP调用JS函数不起作用

Javascript 从PHP调用JS函数不起作用,javascript,php,html,Javascript,Php,Html,使用用户在前一个问题中推荐的方法,我只使用一个文档(index.php)来显示不同的内容,而不是为每个文档创建一个文件 代码如下: HTML PHP 更多信息(); 那不行。但是如果我改变更多信息()用于: <script> $(document).ready(function(){ $('#index').hide(); $('#quienes-somos').show(); }); </script> $(文档)

使用用户在前一个问题中推荐的方法,我只使用一个文档(index.php)来显示不同的内容,而不是为每个文档创建一个文件

代码如下:

HTML

PHP


更多信息();
那不行。但是如果我改变
更多信息()用于:

<script>
    $(document).ready(function(){
        $('#index').hide();
        $('#quienes-somos').show();
    });
</script>

$(文档).ready(函数(){
$('#index').hide();
$('quienes somos').show();
});

它起作用了。这是为什么?

看起来您遇到的问题是因为您在函数中定义了more\u info函数。这将使它脱离全局范围,而全局范围将不会使该函数在任何地方都可访问,除非在准备文档的函数内部

//more_info is now available globally
function more_info(){
    $('#index').hide();
    $('#more_info').show();
}

$(document).ready(function(){
    //document ready code here
});
当您从PHP输出JS函数时,这将使更多的信息执行。另外值得注意的是,由于您没有在ready上执行函数,因此需要确保html可供JS修改。通常最好的做法是将所有JS放在结束标记之前。这将确保您的html尽快加载,并且您的JS将始终能够访问您试图编辑的html。使用head标记中的JS,您需要确保在正确的时间使用以下命令调用JS:

$(function() {
});

所有这些方法在页面初始化期间的不同时间执行。当JS位于head标签中时,浏览器需要将所有JS下载到客户端,然后才能开始呈现HTML,这也会增加访问站点和实际查看站点之间的时间

<script>
    $(document).ready(function(){
        $('#index').hide();
        $('#quienes-somos').show();
    });
</script>
//more_info is now available globally
function more_info(){
    $('#index').hide();
    $('#more_info').show();
}

$(document).ready(function(){
    //document ready code here
});
$(function() {
});
$(document).ready(function() {
});
$(window).load(function() {
});