0
我有以下代碼,它的工作原理是這樣的;如何在第一次自動觸發事件後觸發第二個事件
我得到的URL參數,我做了一個事件,所以根據URL參數自動選擇下拉選項。這個事件觸發OK。
// getURLParameter function [....]
setTimeout(function() {
var currencySelected = getUrlParameter('currency');
$('#currency').val(currencySelected);
console.log('url currency is ' + currencySelected);
}, 1500);
現在它遵循第二事件觸發器這實際上是調用Ajax請求的基礎上選擇的選項將數據傳遞給我的當前頁面。
只有當我沒有基於getURLParameter創建第一個事件時,這個工作方式才起作用。在這兩種情況下,手動選擇下拉選項都會觸發。
$('#currency').on('change', function() {
//console.log(JSON.stringify(id));
console.log('on change triggered');
myk = $("#currency").val();
$.ajax({
url: "/exchange_rates/" + myk,
type: "GET",
data: $(myk).serialize(),
dataType: 'json',
success: function(res) {
// my success stuff
},
error: function(xhr, status, error) {
console.log(xhr.responseText);
return false;
}
});
});
如果想知道我的EJS選擇代碼看起來像
<select id="currency" name="currency" class="form-control">
<option value="">Select currency</option>
<% for(var i=0; i<data.length; i++) {%>
<option value="<%=data[i].currency%>"><%=data[i].currency%></option>
<% } %>
</select>
的jQuery v2.1.4
是的它,我知道它甚至在嘗試之前就會工作。它沒有手動觸發觸發事件,所以它可以被調用ajax請求的事件順序抓住! – Vasikos