如果我有一个与按钮关联的现有点击事件,我可以使用代码来模拟按下该按钮,以便点击事件中的代码运行吗?我问是因为我希望在某些时候用户不必按下按钮来执行代码。如果有意义的话,我想在某些情况下自动按下按钮。
答案 0 :(得分:0)
三种选择:
您可以在适当的时候直接调用click事件处理函数:
if(timeIsRightForClick){
yourClickHandler();
}
您可以通过调用按钮的.click()
方法来模拟按钮单击。
$("#ButtonID").click()
与#2相同,但使用jQuery的trigger()函数,可用于标准事件和自定义事件:
$("#ButtonID").trigger("click");
http://api.jquery.com/trigger/
选择#2和#3通常更好,因为它们会导致事件处理函数在需要使用该对象时接收对click事件的引用。选择#1不会导致实际的点击事件(只运行你告诉它的代码),因此没有创建事件对象或传递给事件处理程序。
答案 1 :(得分:0)
就这么简单,
$(function() {
$('#button').trigger('click');
});
答案 2 :(得分:0)
您可以通过调用元素上的.click()函数来触发元素上的click事件。通过不向函数传递值,将触发click事件,而不是为click事件设置侦听器。
如果按钮的ID为“form-btn”,那么这就是:
<button id="form-btn">Submit</button>
<script type="text/javascript">
//Setup the click event
$('#form-btn').on('click', function (e) {
alert('clicked!');
});
//Call the click event
$('#form-btn').click();
</script>
这应该可以正常工作,虽然我通常在设置事件处理程序时尝试使用命名函数,而不是匿名函数。通过这样做,而不是触发事件,我可以直接调用该函数。
请注意,根据我的经验,较旧的浏览器(IE6,IE7)有时会限制代码触发事件可以作为用户的安全预防措施。
以下是.click()函数的文档:http://www.w3schools.com/jquery/event_click.asp
修改1
我忘了jQuery也有.trigger()函数,正如choz的回答中所使用的那样。作为.click()的替代品,这也很好。什么是好的.trigger()是它可以触发标准事件以及自定义事件,还允许您在事件中传递更多数据。
答案 3 :(得分:0)
var button = document.getElementById('yourButtonIdHere');
button.click();
这将触发按钮中的点击事件
答案 4 :(得分:0)
只需创建一个函数并从按钮内运行该函数。