这是一个愚蠢的问题,但是我遍历了语义UI站点,并且在这里进行搜索,但找不到解决方案。
要点是:我一直在使用下面的代码和语义下拉列表。它工作正常-除了我有一个表格组件,用户还可以通过该组件进行选择(触发一个函数)-并且当他们这样做时,我更新了语义下拉列表以反映当前选择。 。 。然后触发onChange
事件-因此某个函数在不需要时运行了两次。
我尝试使用onSelect
,但这显然不是下拉列表的有效事件。我可以采取一些愚蠢的方法来解决此问题,但我只想使用其他事件。有一个吗?
$(function () {
$('#productStates').dropdown({
allowAdditions: true,
allowReselection: true,
placeholder: "Select State",
onChange: function (value, text) {
if (projectData == undefined) return;
loadStateByID(value)
}
})
});
答案 0 :(得分:0)
好-解决了这个问题。希望Semantic docs在事件处理方面更加清楚。
当用户单击表格单元格并且下拉列表已更新以反映当前选择时,我试图防止两次调用“加载”功能。我使用以下命令更新下拉列表:
$('#productStates').dropdown('set selected', activeStateID);
onChange
事件处理程序捕获了所有更改,因此“ load”事件将触发两次。使用action
,事件仅在用户操作时触发,而不在通过代码设置下拉状态时触发。
$('#productStates').dropdown({
allowAdditions: true,
allowReselection: true,
placeholder: "Select State",
action: function (value, text) {
if (projectData == undefined) return;
$(this).dropdown('set selected', value);
loadStateByID(text)
}
})