I have this simple code : here
$(\".btn\").on(\'click\',function () {
$(\".a\").trigger(\'click\');
});
$(\".btn2\").on(\'click\',funct
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.
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
because $(".a")[0]
return raw JavaScript node you cannot use jQuery object methods for that.