如何使用不同的方法来检测Javascript中的按钮点击
How to use different methods to detect button clicks in Javascript?
我开始编写一些javascript代码来检测按钮按下。我一直在谷歌上搜索各种不同的方法。当其中一些在我的代码中工作或不工作时,我感到困惑。
这是一个JS提琴,有4个例子。
谁能解释为什么#1或#4不起作用?
这是html测试代码。
<input type ='button' value = "Test Button 1" id="Test_Button1" >
<input type ='button' value = "Test Button 2" id="Test_Button2" >
<input type ='button' value = "Test Button 3" id="Test_Button3" >
<input type ='button' value = "Test Button 4" id="Test_Button4" >
下面是javascript代码
$('Test_Button1').click (function() {
alert("Test Button 1 worked");
});
$(document).on("click","#Test_Button2", function() {
alert("Test Button 2 worked");
});
document.getElementById('Test_Button3').onclick = function() {
alert("Test Button 3 worked");
};
$(document).ready (function () {
$('Test_Button4').click (function() {
alert("Test Button 4 worked");
});
});
对于第一个,由于您将其称为元素的id
,因此必须使用#
,所以
$('#Test_Button1').click(function() {
alert("Test Button 1 worked");
});
最后一个也是一样,你必须添加#
。
假设您的$是jQuery,那么您将从#1和#4中丢失#符号
#1和#4查找<Test_Button4>
元素。要通过id
属性获取元素,必须使用#
:
#Test_Button4
对于#1,您需要一个#
:
$('#Test_Button1').click (function() {
alert("Test Button 1 worked");
});
#4:
$('#Test_Button4').click (function() {
alert("Test Button 4 worked");
});
jQuery使用css样式的选择器,这意味着如果你通过id选择一个项目,使用#
。如果按类选择,则使用.
。
这里有更多信息:http://www.w3schools.com/jquery/jquery_ref_selectors.asp
正如所指出的,您的一些代码是错误的,但我认为这只是为了示例。您需要使用$('#Test_Button1')
(注意添加了#
)来访问id为Test_Button1
的按钮。
从技术上讲,有几种方法来响应元素事件,并且有理由使用它们中的大多数。
这个代码:$(document).on("click","#Test_Button2", function() {
alert("Test Button 2 worked");
});
…通过jQuery使用事件委托(读取)。基本上,不是向每个单独的元素添加事件侦听器,而是将其添加到父元素(在本例中是文档本身)。由于事件会冒泡(读取和读取),当您单击按钮时,事件最终会触发委托侦听器。如果要在页面上添加或更改内容(例如使用AJAX),这是非常有用的。添加到页面中的新元素将触发事件,而不必单独处理它们,因为侦听器实际上是附加到文档上的。
当DOM准备好时,document.ready
包装器(本身是一个事件侦听器)中的代码将被触发[doc]。其他代码将在文档加载时执行。你可以在document.ready
块中包装任何东西,它不代表一个离散的方法。
你展示的几个例子是一样的。您可以使用on()
来添加委托,也可以使用click()
——后者是前者的别名。您还可以在代码中找到live()
,在最新版本中已被on()
取代。
onclick
是HTML元素的属性,它与将事件右内联相同:<button onclick="alert('do not do this');">Yay!</button>
.
关于添加事件侦听器与使用元素属性onclick
之间的差异,请参阅此答案:addEventListener vs onclick
-
jQuery.click
- http://api.jquery.com/click/ -
jQuery.ready
- http://api.jquery.com/ready/ -
element.onclick
on MDN - https://developer.mozilla.org/en-US/docs/DOM/element.onclick - JavaScript事件委托如何工作 - http://davidwalsh.name/event-delegate
- quirksmode上的高级事件注册模型 http://www.quirksmode.org/js/events_advanced.html
- quirksmode事件顺序 http://www.quirksmode.org/js/events_order.html
- Javascript按钮下拉列表
- ASP.NET通过单击JavaScript按钮触发c#事件
- JavaScript按钮/输入/函数,字符串反转
- 测试一个简单的javascript按钮
- 如果函数返回True,则显示Javascript按钮
- 用Javascript按钮替换Javascript超链接
- 从页面javascript按钮运行Node.JS
- 如何在asp.net上应用javascript按钮点击
- Javascript按钮href注入
- 计时器自动运行,而不是单击javascript按钮
- Javascript按钮,在html文本区域中插入一个大黑点(•)
- 单击javascript按钮显示/隐藏Div元素
- 单击Javascript按钮,将值添加到文本框中
- visualforce页面javascript按钮点击不起作用
- 使javascript按钮隐藏或显示内容切换
- 使用 Scrapy 模拟 JavaScript 按钮点击
- Javascript按钮禁用并启用特定时间
- 如果未输入任何内容,则使 JavaScript 按钮不执行任何操作
- 当表为空时禁用 JavaScript 按钮
- javascript按钮在html中不起作用