我有一個目標網站,其中有下面的下拉菜單。觸發事件
<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