为什么当我用php切换案例时,只有一些js可以工作

Why do only some of my js work when I switch cases with php?

本文关键字:js 工作 php 案例 为什么      更新时间:2023-09-26

我一辈子都不明白为什么只有一些js能工作。

我在php文件中使用了一个switch案例。

"content_allinboxes.php"answers"content_emails.php"都可以识别"app.v2.js"。

然而,"content_allinboxes.php"也使用了"jquery.ui.touch-punch.min.js"&"jquery-ui-1.10.3.custom.min.js",但它们无法识别。

我做错了什么?我已经做了好几个小时了,想不通。

(注意:如果我不把"content_allinboxes.php"放在switch的情况下,这两个javascript文件就可以工作了。(


以下是交换机内容的调用方式:

<div id="displayLoading"><img src="images/account/loading_indicator.gif"/></div>
<div id="displayContent" style="height: 100%; width: 100%"></div>

这是开关箱代码。此文件名为"content_load.php":

<?php
switch($_GET['id']) {
    case 'feeds_allinboxes':
        $content = 'content_allinboxes.php';
        break;
    case 'feeds_emails':
        $content = 'content_emails.php';
        break;
    case 'feeds_chats':
        $content = 'test_print.html';
        break;
    case 'feeds_phones':
        $content = 'test_print.html';
        break;
    default:
        $content = 'test_print.html';
} 
include($content);
?>

这是运行开关用例的javascript。该文件名为"switchcontent.min.js":

document.observe('dom:loaded', function () {
    var switches = document.getElementsByClassName('switches');
    for (var i = 0; i < switches.length; i++) {
        $(switches[i].id).onclick = function () {
            getContent(this.id);
        }
    }
});
function getContent(id) {
    var url = 'pages/content_load.php';
    var rand   = Math.random(9999);
    var pars   = 'id=' + id + '&rand=' + rand;
    var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onLoading: showLoad, onComplete: showResponse} );
}
function showLoad () {
    $('displayContent').style.display = 'none';
    $('displayLoading').style.display = 'block';
}
function showResponse (originalRequest) {
    var newData = originalRequest.responseText;
    $('displayLoading').style.display = 'none';
    $('displayContent').style.display = 'block';        
    $('displayContent').innerHTML = newData;
}

以下是页脚javascripts:

<script src="js/app.v2.js"></script>
<script src="js/switchcontent.js"></script>
<script src="js/switchcontent.min.js"></script>
<script src="js/jquery.ui.touch-punch.min.js" cache="false"></script>
<script src="js/jquery-ui-1.10.3.custom.min.js" cache="false"></script>
<script src="js/jquery-ui-1.10.3.custom.min.js" cache="false"></script>
<script src="js/jquery.ui.touch-punch.min.js" cache="false"></script>
<script src="js/switchcontent.min.js"></script>
<script src="js/switchcontent.js"></script>
<script src="js/app.v2.js"></script>

颠倒JavaScriptSource添加的顺序,首先添加jQuery-min,然后添加jQuery-ui-touch,然后其他JS在您的JS中填充引用,最后是您的JS。

PS:检查浏览器控制台以查看错误详细信息。

这是导入的标准顺序:

 <script src="YOUR_JQUERY_VERSION_.js"></script>
 <script src="JQUERY_UI_VERSION.js"></script> 
 <script src="OTHER_JQUERY_LIBRARIES.js"></script> 
 <script src="YOUR_OWN_LIBRARY.js"></script>

和您的:

<script src="js/switchcontent.min.js"></script>
<script src="js/switchcontent.js"></script>

基本相同。所以删除两者中的任何一个。