gpt4 book ai didi

来自外部文件的 Javascript 函数不起作用

转载 作者:行者123 更新时间:2023-11-30 11:45:39 25 4
gpt4 key购买 nike

我是编程新手,目前正在学习 JavaScript。我正在尝试使用薪资计算器测试我到目前为止学到的知识,但我的代码无法正常工作。我创建了一个函数,当用户单击按钮时将调用该函数;如果我在同一个 HTML 文件中添加该函数,它就可以正常工作。当该函数在我的外部 javascript 文件中时,该函数不起作用。我单击查看页面源代码以确认外部 javascript 文件已加载并且确实已加载。

HTML 代码

<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Payroll Calculator</title>
<meta name="viewport" contect="width=devide-width, user- scalable=no,initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/styles.css">
<link rel="stylesheet" href="css/myStyle.css">
</head>

<body>
<header>
<div class="container">
<div class="col-xs-12">
<h1>Payroll Calculator</h1>
</div>
</div>
</header>

<div class="container">
<section class="main row">
<article class="col-xs-12 col-sm-6 col-md-6">
<h3>Employee</h3>
<div class="input-group">
<span class="input-group-addon" id="firstName">First Name</span>
<input type="text" class="form-control" placeholder="First Name" aria-describedby="basic-addon1">
</div>
<br>
<div class="input-group">
<span class="input-group-addon" id="basic-addon1">Last Name</span>
<input type="text" class="form-control" placeholder="Last Name" aria-describedby="basic-addon1">
</div>
<br>
<div class="input-group">
<span class="input-group-addon" id="rate-type">Rate Type&nbsp</span>
&nbsp<input type="radio" name="optradio">Hourly
<input type="radio" name="optradio">Salary
</div>
<br>
<div class="input-group">
<span class="input-group-addon">Rate Amount</span>
<input type="text" class="form-control" aria-label="Amount (to the nearest dollar)">
<span class="input-group-addon">.00</span>
</div>
<br>

<label id="EnterHours" onclick="enterHours()">Enter Hours</label>
<br>
<p id="hours"></p>
<br>

<label id="EnterEarnings">Enter Earnings</label>
<br>
<p id="earnings"></p>
<br>

<button type="button" class="btn btn-default" onclick="enterHours()">Calculate</button>
<button type="button" class="btn btn-default">Cancel</button>


</article>

<aside class="col-xs-12 col-sm-6 col-md-6">
<h3 class="sidebar">Results</h3>
</aside>
</section>
</div>

<footer>
<div class="container" >
<h3>Andres Quintero</h3>
<p id="demo"></p>
</div>
</footer>

<script src="js/app2.js"></script>
</body>

Javascript 代码

$(document).ready(function(){

function enterHours(){
document.getElementById("hours").innerHTML = "This is a test";
}

}

最佳答案

该函数定义在 jQuery 的范围内;因此,无法从全局范围访问。将其移至全局范围;不要使用任何包装器

function enterHours(){
document.getElementById("hours").innerHTML = "This is a test";
}

进一步阅读 How do JavaScript closures work?

这是一个如何工作的例子

在 jQuery 范围内定义函数。这将引发错误:

Uncaught ReferenceError: fn is not defined

$(document).ready(function(){

function fn(){
console.log('Clicked!');
}

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<button onclick="fn();">Check for fn</button>

function fn(){
console.log('Clicked!');
}
<button onclick="fn();">Check for fn</button>

关于来自外部文件的 Javascript 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41069190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com