jQuery trigger click vs click ()?

前端 未结 3 499
我在风中等你
我在风中等你 2020-12-10 06:56

I have this simple code : here

$(\".btn\").on(\'click\',function () {

  $(\".a\").trigger(\'click\');
});

$(\".btn2\").on(\'click\',funct         


        
相关标签:
3条回答
  • 2020-12-10 07:27

    Actually $(".a").trigger('click'); triggers the click event but it doesn't mean that it'll click the link, instead it'll execute the event handler if you already have one, i.e.

    $(".btn, .btn2").on('click',function () {
        $($(".a")[0]).trigger('click'); // first element
    });
    
    $(".a").on('click', function (e){
        alert(e.target);
    });​
    

    The given example will trigger the click event of the a and will execute the handler (the anonymous function) that's already have been registered for that event using

    $(".a").on('click', function (e){...});
    

    DEMO.

    0 讨论(0)
  • 2020-12-10 07:31

    This is because JQuery's .trigger() doesn't really trigger the native events. Try this for example in your script:

    $(".btn").on('click',function () {
    
      $(".a").trigger('click');
    });
    $(".a").click(function(){alert('triggered!')});
    

    When you create a costume handler using JQuery, THEN the event will be triggered with the .trigger() method.

    Update: This is quite interesting, seems to happen only with <a> tags AND with href. Check this out

    0 讨论(0)
  • 2020-12-10 07:38

    because $(".a")[0] return raw JavaScript node you cannot use jQuery object methods for that.

    0 讨论(0)
提交回复
热议问题