這是我的HTML頁面:從單獨的.js文件調用主頁面中的jquery函數。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="myscript.js"></script>
<script type="text/javascript">
$(document).ready(function() {
function closecontactform(){
alert("closing the form");
};
});
</script>
</head>
<body>
<p id="elementname">Click me to call function</p>
</body>
這是myscripts.js文件:
$(document).ready(function() {
$('#elementname').click(function() {
alert("click detected");
closecontactform();
});
});
我的實際頁面比這更復雜了不少,包括很多jQuery的,但是這是僅顯示必要代碼的基本問題。我希望能夠從一個單獨的.js文件中調用一個函數,而函數是在主頁面中定義的。在這個基本的簡單版本中,我嘗試刪除$(document).ready(function()...並且在這個簡單的例子中,這有助於我在更復雜的頁面中使用這行代碼,因爲刪除它似乎會破壞我所做的一切上。
你會看到「點擊檢測」被調用,但「關閉窗體」不。
您能夠給我任何指針?
感謝,
好的。這是一個像你說的範圍問題,但是我不認爲我能夠刪除我的$(document).ready(),因爲我的實際函數實際上包含了一些變量和jQuery(和css),它們依賴於HTML正在加載。所以我所做的就是將所有代碼從我的單獨的.js文件中取出,並將其放在我的主頁上同一個$(document).ready()中。這解決了問題。 – Maureen
好的..我試着解釋jQuery代碼的一部分......你可能會把功能拉出來。你仍然只能從'ready'中調用許多函數,但是你可以在不同文件中使用'ready'來訪問相同的全局函數 – charlietfl
看看我是如何將$(document).ready包裝在名爲'ready'之外的調用函數中。函數在調用之前不會執行。無論您在何處定義它, – charlietfl