Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery模拟onClick_Javascript_Jquery - Fatal编程技术网

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');