首页 > 解决方案 > 按钮不响应点击 JQuery

问题描述

因此,我是 JQuery 的新手,正在尝试编写一个程序,该程序在单击按钮时返回(用于测试的控制台日志)按钮的值。由于某种原因,单击按钮时我的代码没有注册,另外我认为没有为“car”参数解析正确的值。

这是我的代码(可能比需要的多,但不确定我哪里出错了):

$(document).ready(function() {
  $(":button").click(myFunction(this.value));
});

function myFunction(car) {
  selection = car;
  console.log(selection);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="button" name="newButton" value="Mercedes"> <br>
<input type="button" name="newButton" value="BMW"> <br>
<input type="button" name="newButton" value="Audi">

我希望程序记录按下的按钮的值,但它目前没有记录任何内容。

谢谢

标签: javascriptjquery

解决方案


问题是您正在那里执行该功能。您应该分配它,而不是执行它。

$(document).ready(function() {
  $(":button").click(myFunction);
});

function myFunction(event) {
  selection = event.target.value;
  console.log(selection);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="button" name="newButton" value="Mercedes"> <br>
<input type="button" name="newButton" value="BMW"> <br>
<input type="button" name="newButton" value="Audi">

您可以使用上述方式,或者更好地使用这种方式:

$(document).ready(function() {
  $(":button").click(e => myFunction(e.target.value));
});

function myFunction(car) {
  selection = car;
  console.log(selection);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="button" name="newButton" value="Mercedes"> <br>
<input type="button" name="newButton" value="BMW"> <br>
<input type="button" name="newButton" value="Audi">


推荐阅读