我有一個onchange偵聽器的選擇框。當人類使用它時,這個功能是100%。jQuery事件觸發器
我已經添加了一個模式對話框與jQueryUI創建一個新的選項上的列表。 這工作也是100%。
但是,在向列表中添加新選項時,我試圖「僞造」更改事件以便觸發,因此用戶不必這樣做。它似乎從未開火。
我可以使用這樣的觸發器嗎?
//##### ADDC####//
$("#add").click(function(){
$("#addform").dialog({
autoOpen: true,
height: 200,
width: 350,
modal: true,
buttons: {
"Add": function() {
var f = $('#folder').val();
var request = $.ajax({
url: "process.it"
, type: "POST"
, data: { f : f }
});
request.done(function(msg) {
$("#version").append($('<option></option>').val(msg).html(msg)).val(msg);
$("#version").focus();
});
$(this).dialog("close");
},
Cancel: function() {
$(this).dialog("close");
}
},
close: function() {
$('#version').trigger('change');
}
});
return false;
});
//###### CHANGE ###############
$('#version').change(function() {
var promise = getFolders(mypath);
promise.success(function (data) {
promise.done(function(msg) {
if(msg=="false"){
//error check
} else {
var myOptions = msg.split(",");
var mySelect = $('#version');
mySelect
.find('option')
.remove()
.end();
$.each(myOptions, function(x,y) {
if(x==0){
x=-1;
y="Select Version";
mySelect.append($('<option></option>').val(x).html(y));
}
else {
mySelect.append($('<option></option>').val(y).html(y));
}
});
mySelect.focus();
}
});
});
});
我掏出代碼一噸,所以如果有這樣括號出來的地方,它只是錯別字這裏展示功能的核心。同樣,無論是工作保存加法器調用轉換:
重點線是:
close: function() {
$('#version').trigger('change');
}
HTML看起來像
<select id="version"></select> <a href="#" id="add">
當模式關閉(或其他地方),我想它會激發onchange,以便有效地從源代碼(promise ajax lookup,函數未在此處列出...)中重新提取,而不是現在執行的操作,它只是將選項附加到列表中並將其選中。
我試過這個觸發塊的代碼在一個可能的地方,它仍然不會觸發。
那麼,我該如何僞造系統中的onchange?我正在使用現代版本的jQuery和用戶界面(可能是1點發布)
你是不是想請求完成後觸發的變化? – Gunner4Life
是的,添加新選項後,我希望更改事件觸發。 – briansol