這可能是一個愚蠢的初學者問題,但它讓我發瘋。簡化,代碼:無法從外部文件訪問的JavaScript功能
我有其中一個聯腳本(位於頭元件),一些JS函數定義的的index.php。
<script type="text/javascript"> $(function(){ // other code var popup = function(message,color){ $(".title").css({"color": "beige" }); $(".popup_alert").css({"background-color": color}); $(".popup_alert").append(message); $(".popup_alert").removeClass("offscreen").delay(800).queue(function(){ $(this).addClass("offscreen").dequeue(); $(this).empty(); $(".title").css({"color": "#444" }); }); }; }; </script>
在
<body>
的最底部,我加載外部JS文件,其中一些JQuery的情況:<script src="ajaxToDB.js" type="text/javascript"></script>
jQuery是沒有問題的。它被加載並且這個外部文件中的其他功能正在工作。
在這個鏈接文件中,我無法調用index.php中定義的函數。
popup("test",orange);
將產生一個控制檯錯誤 「未捕獲的ReferenceError:彈出沒有定義」
這是正常的嗎?我已經將所有的東西包裝在一個 $(function(){...})之內的ajaxToDB.js中;我讀到這會迫使頁面首先加載,但無濟於事......
什麼是我忽略的愚蠢的細節?!
你能重現這個問題在plnkr http://plnkr.co? – guest271314
我會盡力...... –
我把它剝離到最低限度,它工作。 http://plnkr.co/edit/CNCAXCzakI85z8NehbRV 但是,我無法在那裏使用PHP。我現在認爲它可能與PHP相關。這整個ajaxified mySQL訪問不能真正被複制...:/ –