I have this simple code : here
$(".btn").on('click',function () {
$(".a").trigger('click');
});
$(".btn2").on('click',function () {
$(".a")[0].click();
});
I'm trying to simulate pressing on Anchor.
But when I use jQuery's trigger
, it doesn't work (why?)
When I use "jsobj".click()
func, it does work.
After reading the jQuery documentation, I don't see any reason why it shouldn't.
Help ?
PS: I'm using Chrome.
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, ie
$(".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){...});
因为$(".a")[0]
返回原始JavaScript节点,所以不能使用jQuery对象方法。
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
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.