模拟单击按钮

时间:2016-03-11 16:11:35

标签: javascript jquery

如果我有一个与按钮关联的现有点击事件,我可以使用代码来模拟按下该按钮,以便点击事件中的代码运行吗?我问是因为我希望在某些时候用户不必按下按钮来执行代码。如果有意义的话,我想在某些情况下自动按下按钮。

5 个答案:

答案 0 :(得分:0)

三种选择:

  1. 您可以在适当的时候直接调用click事件处理函数:

    if(timeIsRightForClick){
       yourClickHandler();
    }
    
  2. 您可以通过调用按钮的.click()方法来模拟按钮单击。

    $("#ButtonID").click()
    
  3. https://api.jquery.com/click/

    1. 与#2相同,但使用jQuery的trigger()函数,可用于标准事件和自定义事件:

      $("#ButtonID").trigger("click");
      
    2. http://api.jquery.com/trigger/

      选择#2和#3通常更好,因为它们会导致事件处理函数在需要使用该对象时接收对click事件的引用。选择#1不会导致实际的点击事件(只运行你告诉它的代码),因此没有创建事件对象或传递给事件处理程序。

答案 1 :(得分:0)

就这么简单,

$(function() {
    $('#button').trigger('click');
});

答案 2 :(得分:0)

您可以通过调用元素上的.click()函数来触发元素上的click事件。通过不向函数传递值,将触发click事件,而不是为click事件设置侦听器。

如果按钮的ID为“form-b​​tn”,那么这就是:

<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)

只需创建一个函数并从按钮内运行该函数。