我有一个目标网站,其中有下面的下拉菜单。触发事件
<select class="categories-options" data-level="1" name="level1-option" id="level1-option" required="">
<option value="">default</option>
<option value="p1" data-href="/callback/p1">P1</option>
<option value="p2" data-href="/callback/p2">P2</option>
<option value="p3" data-href="/callback/p3">P3</option>
</select>
当一个项目从菜单中选择,它会触发一个“change”事件,当这个事件发生在一个函数被调用。我使用Chrome调试了该事件,当我从下拉菜单中选择一个项目时,您可以看到调试输出。我从调试器截图。
现在,让我解释我正在尝试做什么。我使用JavaScript函数中使用下面的代码从下拉菜单中的项目:
var id= document.getElementById('level1-option');
setSelectedValue(id, "p2");
$('#level1-option').trigger("select");
在最后一行中,我试图触发在网页中原本会发生同样的事件,如果我手动选择的项目。但是,它不会触发任何东西。 |我在调试输出中看到事件由类触发。我尝试了很多不同的东西,但没有奏效。任何人都可以解释这个问题吗?我怎样才能触发使用jQuery或JavaScript在该网页中发生的相同事件?
好了,我已经尝试过塞莱ct,改变,onChange,但他们不只是工作。你怎么看待调试窗口中的srcElement?也许我的选择器不正确? – Dundar 2014-12-03 11:23:45
@Dundar:'select'事件在这里是不相关的(它不涉及值的变化)。没有'onChange'事件。该事件是“改变”。它看起来像你有正确的元素选择器,并且jQuery的'trigger'确实触发了更改事件。我建议在你的代码上停止调试器,并确保当你试图更新它时存在元素。 – 2014-12-03 11:44:51