javascript x-editable 在显示的事件下拉列表 (<select />) 源刷新
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/20858549/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
x-editable on shown event dropdown (<select />) source refresh
提问by Robin
I'm trying to change a x-editable source data just before it is shown so that my dropdown menu entries are always fresh even if source changes.
我正在尝试在显示之前更改 x 可编辑源数据,以便即使源更改我的下拉菜单条目也始终是最新的。
Here is a link to explain: http://jsfiddle.net/XN7np/3/
这是一个解释的链接:http: //jsfiddle.net/XN7np/3/
// my source that can change over time
var source = [{'value': 1, 'text': 'fine'}, {'value': 2, 'text': 'bad'}];
$('#my_select').editable({
'mode' : 'inline',
'source': source,
});
$('#my_select').on('shown', function(ev, editable) {
// now changing my source just before dropdown is shown
source = [{'value': 1, 'text': 'GOOD'}, {'value': 2, 'text': 'FU'}];
//$(editable).editable('option', 'source', source); NOT WORKING
//$('#my_select').editable('option', 'source', source); NOT WORKING
//$(this).editable('option', 'source', source); NOT WORKING
});
any idea?
任何的想法?
回答by Jan
I do not see it in the documentation, but you can pass a function to the source parameter like this:
我在文档中没有看到它,但是您可以像这样将函数传递给源参数:
var source = [{'value': 1, 'text': 'fine'}, {'value': 2, 'text': 'bad'}];
$('#my_select').editable({
'mode' : 'inline',
'source': function() {
return source;
},
});
This way it always uses the updated source array. I updated your fiddle: http://jsfiddle.net/XN7np/4/
这样它总是使用更新的源数组。我更新了你的小提琴:http: //jsfiddle.net/XN7np/4/
回答by XLi
This line works:
这条线有效:
$('#my_select').editable('option', 'source', source);
You have to use double quote for "value" and "text", instead of single quote 'value', 'text' for any xeditable source, like source2:
您必须对“值”和“文本”使用双引号,而不是对任何可编辑源使用单引号“值”、“文本”,例如 source2:
var source2 = [{"value": 1, "text": "fine111"}, {"value": 2, "text": "bad22"}];
$('#change').click(function(e) {
$('#my_select').editable('option', 'source', source2)
});
copy above code to your fiddle example and see how it works.
将上面的代码复制到您的小提琴示例中,看看它是如何工作的。
回答by Calchas
<span class="editable ea-appsch-agntid" data-type="select" data-source="URL" data-value="">agntname</span>