jQuery事件触发器
我有一个带有onchange侦听器的选择框。当人类使用它时,它的功能是100% 我已经添加了一个带有jQueryUI的模态对话框,以便在所述列表中创建一个新选项。 这也100%有效 然而,在将上述新选项添加到列表中时,我试图“伪造”要触发的更改事件,以便用户不必这样做。它似乎从不着火 我可以像这样使用触发器吗jQuery事件触发器,jquery,events,triggers,Jquery,Events,Triggers,我有一个带有onchange侦听器的选择框。当人类使用它时,它的功能是100% 我已经添加了一个带有jQueryUI的模态对话框,以便在所述列表中创建一个新选项。 这也100%有效 然而,在将上述新选项添加到列表中时,我试图“伪造”要触发的更改事件,以便用户不必这样做。它似乎从不着火 我可以像这样使用触发器吗 //##### ADDC ####// $( "#add" ).click(function(){ $( "#addform" ).dialog({ autoOpe
//##### 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();
}
});
});
});
html看起来像
<select id="version"></select> <a href="#" id="add">
当模态关闭或其他位置时,我希望它启动onchange以有效地从源代码中重新提取promise ajax查找,函数未在此处列出。。。而不是它现在所做的,即简单地将选项附加到列表并选择它
我在一个可能的地方尝试了这个触发代码块,但它仍然无法启动
那么,我如何从系统中伪造onchange呢?我使用的是jQuery和UI的现代版本,可能是1点发布版我认为您在服务器响应之前触发了更改。如果要在之后触发更改,请让add方法关闭“done”函数中的对话框
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" );
});
},
下面是一个示例-您是否试图在请求完成后触发更改?是的,添加新选项后,我希望更改事件为fire.yup。我有一个“比赛条件”,在我有它的地方添加了一个警报,也允许它显示。把它移到“已完成”位置就成功了。谢谢
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" );
});
},