Simulate a click on 'a' element using javascript/jquery

前端 未结 8 2265
别跟我提以往
别跟我提以往 2020-12-04 17:08

I am trying to simulate a click on on an element. HTML for the same is as follows



        
相关标签:
8条回答
  • 2020-12-04 17:56

    Here, try this one:

    $('#gift-close').on('click', function () {
        _gaq.push(['_trackEvent','voucher_new','cart',$(this).attr('rel')+'-mask_x_button-inaction']);
    });
    
    0 讨论(0)
  • 2020-12-04 17:59

    Using jQuery: $('#gift-close').trigger('click');

    Using JavaScript: document.getElementById('gift-close').click();

    0 讨论(0)
  • 2020-12-04 18:01

    Code snippet underneath!

    Please take a look at these documentations and examples at MDN, and you will find your answer. This is the propper way to do it I would say.

    Creating and triggering events

    Dispatch Event (example)

    Taken from the 'Dispatch Event (example)'-HTML-link (simulate click):

    function simulateClick() {
    
      var evt = document.createEvent("MouseEvents");
    
      evt.initMouseEvent("click", true, true, window,
        0, 0, 0, 0, 0, false, false, false, false, 0, null);
    
      var cb = document.getElementById("checkbox"); 
      var canceled = !cb.dispatchEvent(evt);
    
      if(canceled) {
        // A handler called preventDefault
        alert("canceled");
      } else {
        // None of the handlers called preventDefault
        alert("not canceled");
      }
    }
    

    This is how I would do it (2017 ..) :

    Simply using MouseEvent.

    function simulateClick() {
    
        var evt = new MouseEvent("click");
    
        var cb = document.getElementById("checkbox");
        var canceled = !cb.dispatchEvent(evt);
    
        if (canceled) {
            // A handler called preventDefault
            console.log("canceled");
        } else {
            // None of the handlers called preventDefault
            console.log("not canceled");
        }
    }
    

    document.getElementById("button").onclick = evt => {
        
        simulateClick()
    }
    
    function simulateClick() {
    
        var evt = new MouseEvent("click");
    
        var cb = document.getElementById("checkbox");
        var canceled = !cb.dispatchEvent(evt);
    
        if (canceled) {
            // A handler called preventDefault
            console.log("canceled");
        } else {
            // None of the handlers called preventDefault
            console.log("not canceled");
        }
    }
    <input type="checkbox" id="checkbox">
    <br>
    <br>
    <button id="button">Check it out, or not</button>

    0 讨论(0)
  • 2020-12-04 18:02

    Using jQuery:

    $('#gift-close').click();
    0 讨论(0)
  • 2020-12-04 18:02

    Try to use document.createEvent described here https://developer.mozilla.org/en-US/docs/Web/API/document.createEvent

    The code for function that simulates click should look something like this:

    function simulateClick() {
      var evt = document.createEvent("MouseEvents");
      evt.initMouseEvent("click", true, true, window,
        0, 0, 0, 0, 0, false, false, false, false, 0, null);
      var a = document.getElementById("gift-close"); 
      a.dispatchEvent(evt);      
    }
    
    0 讨论(0)
  • 2020-12-04 18:04

    Use this code to click:

    $("#gift-close").click();
    
    0 讨论(0)
提交回复
热议问题