Javascript 如何获取JQuery.trigger(';单击';);启动鼠标单击
我很难理解如何使用JQuery模拟鼠标点击。有人能告诉我我做错了什么吗 HTML: 演示: 当我点击按钮#foo时,我想模拟一个点击条,但是当我尝试这样做时,什么也没有发生。我还尝试了Javascript 如何获取JQuery.trigger(';单击';);启动鼠标单击,javascript,jquery,html,triggers,eventtrigger,Javascript,Jquery,Html,Triggers,Eventtrigger,我很难理解如何使用JQuery模拟鼠标点击。有人能告诉我我做错了什么吗 HTML: 演示: 当我点击按钮#foo时,我想模拟一个点击条,但是当我尝试这样做时,什么也没有发生。我还尝试了jQuery(document).ready(function(){…}),但没有成功。jQuery的.trigger('click')只会导致在此事件上触发事件,它也不会触发默认浏览器操作 您可以使用以下JavaScript模拟相同的功能: jQuery('#foo').on('click', function(
jQuery(document).ready(function(){…})
,但没有成功。jQuery的.trigger('click')
只会导致在此事件上触发事件,它也不会触发默认浏览器操作
您可以使用以下JavaScript模拟相同的功能:
jQuery('#foo').on('click', function(){
var bar = jQuery('#bar');
var href = bar.attr('href');
if(bar.attr("target") === "_blank")
{
window.open(href);
}else{
window.location = href;
}
});
这就是JQuery行为。我不知道为什么它会这样工作,它只会触发链接上的onClick函数 尝试:
不能使用javascript模拟单击事件。
jQuery
.trigger()
函数仅在元素上触发名为“click”的事件,您可以使用.on()
jQuery方法捕获该事件。您需要使用jQuery('#bar')[0]。click()
(不是jQuery对象),而不是使用.trigger()
jQuery方法
注意:DOM级别2。click()
在上不起作用。您需要使用一种变通方法
请参见我的演示:
可能有用:
调用触发器的代码应在调用事件后转到
例如,当#expense_tickets值更改时,以及当页面重新加载时,我希望执行一些代码
$(function() {
$("#expense_tickets").change(function() {
// code that I want to be executed when #expense_tickets value is changed, and also, when page is reload
});
// now we trigger the change event
$("#expense_tickets").trigger("change");
})
我尝试了前两个答案,直到我从文件输入元素中删除了“display:none”之后,它才对我起作用。 然后我又回到了.trigger(),它在safari for windows中也起作用
所以结论,不要使用显示:无;要隐藏文件输入,您可以使用不透明度:0。试试这个对我有用的方法:
$('#bar').mousedown();
从技术上讲,这不是一个答案,而是一个很好的使用接受答案()为jQuery ACF字段上的选项卡创建下一个和上一个按钮:
$('.next').click(function () {
$('#primary li.active').next().find('.acf-tab-button')[0].click();
});
$('.prev').click(function () {
$('#primary li.active').prev().find('.acf-tab-button')[0].click();
});
您只需要在执行
之前放置一个小的超时事件。单击()
像这样:
setTimeout(function(){ $('#btn').click()}, 100);
只要用这个:
$(function() {
$('#watchButton').trigger('click');
});
jQuery触发器
仅在添加任何“jQuery click”事件时有效。否则,你将无法通过这种方式做任何事情;这是浏览器内置的安全措施。请参阅@Blazemonger的答案:@san.chez有趣,感谢您提供的信息,以前不知道此安全措施!“无法使用javascript模拟单击事件”-。错误。。。你可以用javascript/jquery模拟一个点击事件,你可以用.click-without-on捕获触发器点击事件。我会把this.click()包装起来如果(this.click)
使用它来单击jQuery ACF字段上的下一个选项卡:$('.next')。单击(函数(){$('.#primary li.active').next().find('.ACF tab button')[0]。单击();});谢谢它在桌面上工作。但在移动设备上(android chrome)就不是这样了。有什么建议吗?出于某种原因,这会破坏当前URL中的哈希值。如果上的某个HREF似乎不再有效(在Safari、Firefox上测试),那也是我的问题!对于触发器()
不起作用的原因感到困惑。原来我在它调用的函数上面设置了触发器代码,所以钩子并没有真正就位。啊!一点也不气人<代码>触发器()用于执行单击事件JavaScript部分。这非常类似于创建一个重复使用多次的函数var(){}
。如果您试图在页面加载时模拟单击,这将非常有效。这也解决了我的问题,谢谢。其他解决方案都不能可靠地工作。我的代码显示了一个模态,然后模拟了单击选项卡。为什么有必要推迟?为了安全起见,我不得不使用500毫秒。
$('#bar').mousedown();
$('.next').click(function () {
$('#primary li.active').next().find('.acf-tab-button')[0].click();
});
$('.prev').click(function () {
$('#primary li.active').prev().find('.acf-tab-button')[0].click();
});
setTimeout(function(){ $('#btn').click()}, 100);
$(function() {
$('#watchButton').trigger('click');
});