我有一个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