这是我的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