javascript - click(jquery) 在脚本加载后立即执行该函数并且不响应点击
问题描述
我试图在.click
按下按钮时使用(jquery 3.4.1)执行一个函数,但该函数在页面加载后立即执行。经过一番尝试后,我认为可能有一些代码使其行为如此,所以我创建了具有基本元素的新文件并尝试使用它,但它仍然无法正常工作。我认为我可能做错了什么,所以我检查了一个教程,但它没有帮助,因为我正在做同样的事情。我也试过.on('click', function)
,但结果是一样的。
.html 文件
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1 style="text-align: center;">Some Text</h1>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="test.js"></script>
</body>
</html>
.js 文件
$('h1').click(console.log('Clicked'))
知道为什么它不起作用吗?
解决方案
您正在将单击事件侦听器附加到 h1
$('h1').click(console.log('Clicked'))
它的作用是执行控制台并将其返回的内容分配给事件侦听器。所以这就是它不起作用的原因。您基本上只是执行了以下操作,因为控制台不返回任何内容。
$('h1').click(undefined)
所以你必须给它分配一个功能
$('h1').click(function () { console.log('Clicked') })
// Your original way written out to see what is happening
// $('h1').click(console.log('Clicked')) // code below is same thing as this line
var cl = console.log("Clicked Original Way") // will log message
console.log('cl is:', cl) // cl is: undefined
$('h1').click(cl) // aka $('h1').click(undefined)
// solution 1
$('h1').click(function() {
console.log('Clicked')
})
// solution 2
function myClickFunction() {
console.log('Clicked w/ function')
}
$('h1').click(myClickFunction)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h1 style="text-align: center;">Some Text</h1>
推荐阅读
- javascript - 选择和取消选择在角度 7 中不起作用?
- python - 如何在设置类属性时将传递类设置为功能
- python - 按升序生成随机数?
- python - python numpy的平均列表列表
- ruby-on-rails - 遇到致命问题:使用 ruby on rails 对用户“postgres”进行对等身份验证失败
- php - PHP 7.3.8 中遇到的非数字值
- python - 为什么我的神经网络训练这么慢?
- javascript - Laravel react-admin error orderBy not working
- google-maps - Google Geocode API 提供区域数据
- python - Kubernetes 容器应用程序中的 Google App Engine 请求样式日志记录