2016-03-11 238 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

    只是做一個函數,從按鍵中運行的功能。