带有语义UI下拉菜单的“ onChange”事件的替代方法?

时间:2018-11-22 01:10:55

标签: javascript semantic-ui

这是一个愚蠢的问题,但是我遍历了语义UI站点,并且在这里进行搜索,但找不到解决方案。

要点是:我一直在使用下面的代码和语义下拉列表。它工作正常-除了我有一个表格组件,用户还可以通过该组件进行选择(触发一个函数)-并且当他们这样做时,我更新了语义下拉列表以反映当前选择。 。 。然后触发onChange事件-因此某个函数在不需要时运行了两次。

我尝试使用onSelect,但这显然不是下拉列表的有效事件。我可以采取一些愚蠢的方法来解决此问题,但我只想使用其他事件。有一个吗?


$(function () {
    $('#productStates').dropdown({
        allowAdditions: true,
        allowReselection: true,
        placeholder: "Select State",
        onChange: function (value, text) {
            if (projectData == undefined) return;                
            loadStateByID(value)
        }
    })
});

1 个答案:

答案 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)
        }
    })