Javascript jQuery模拟onClick
我试图在下拉列表中模拟一个Javascript jQuery模拟onClick,javascript,jquery,Javascript,Jquery,我试图在下拉列表中模拟一个onclick事件 我有一个IE对象要转到一个页面,我需要更改一个下拉列表,其中有一个onchange事件: $('select[name="blah"]').val(3).trigger('change'); $('select[name="blah"]').change(function(){ alert('changed'); }); 当我尝试此操作时,我希望警报会触发,因为它在技术上是一个onchange 有没有办法做到这一点 更多详细信息 我的
onclick
事件
我有一个IE对象要转到一个页面,我需要更改一个下拉列表,其中有一个onchange
事件:
$('select[name="blah"]').val(3).trigger('change');
$('select[name="blah"]').change(function(){
alert('changed');
});
当我尝试此操作时,我希望警报会触发,因为它在技术上是一个onchange
有没有办法做到这一点
更多详细信息
我的工具是通过一个对象控制另一个IE页面。它导航到页面并在页面上找到“选择”下拉列表。从这里开始,如果您手动进行选择,则在进行选择时会出现onchange事件
我试图让jQuery模拟,好像有人单击它一样,以在更改事件时触发该事件
我尝试了.trigger
和.change
,但两者都无法工作
$('select[name="blah"]').change(function(){
NotifyChanged();
});
function NotifyChanged() {
alert('changed');
}
如果要测试已更改函数中的逻辑,只需调用它。代码不工作的唯一原因是执行顺序。您需要先连接处理程序,然后再触发它: JSFiddle:
注意:仍然需要手动
change
触发器,因为更改事件通常必须由用户交互触发。设置该值是不够的。我可以问一下,为什么调用函数会起作用,但如果警报直接出现在“更改”事件中则不行?您的代码可以调用该函数,而不是尝试模拟单击。奇怪的是,在FF中尝试过
// Wire up event handler
$('select[name="blah"]').change(function(){
alert('changed');
});
// Now generate the event
$('select[name="blah"]').val(3).trigger('change');