2016-03-11 199 views
-1

如果我有一个与按钮相关的现有点击事件,我可以使用代码来模拟那个按钮被按下,所以点击事件中的代码会运行吗?我在问,因为我希望在那里有一些时间,用户不必按下代码执行按钮。我想在某些情况下自动按下按钮,如果这是有道理的。模拟点击按钮

+6

你想让我Google给你吗? – Amit

+0

问题的相同标题比此处给出的答案产生更多结果。 –

+0

[如何用JavaScript模拟点击?]可能的重复(http://stackoverflow.com/questions/2705583/how-to-simulate-a-click-with-javascript) –

回答

0

三种选择:

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

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

    $("#ButtonID").click() 
    

https://api.jquery.com/click/

  • 同#2,但使用jQuery的触发()函数,它可在标准的事件和自定义的使用:

    $("#ButtonID").trigger("click"); 
    
  • ​​

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

    0

    至于为这个简单,

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

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

    按钮是否“形式,BTN”的ID,下面是想什么:

    <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)有时会限制哪些代码触发事件可以作为用户的安全预防措施。

    这里的文件上。点击()函数:http://www.w3schools.com/jquery/event_click.asp


    编辑1

    我忘记了jQuery的也有.trigger()函数,如choz的回答使用。这也将作为替代.click()的工作相当不错。有什么好的。trigger()是它可以触发标准事件以及自定义事件,并且还允许您在事件中传递更多数据。

    0
    var button = document.getElementById('yourButtonIdHere'); 
    button.click(); 
    

    这将在按钮触发一个click事件

    0

    只是做一个函数,从按键中运行的功能。