Jquery,用于小部件控制元素的event.stopPropagation

时间:2014-09-05 08:16:35

标签: jquery

我的小部件,它像选择器一样工作(但不是真正的小部件)。我使用event.stopPropagation()来控制包含元素的下拉列表,但问题是,当页面上有多个元素时 - 我可以同时打开多个下拉列表。

有没有办法解决这个问题?

JSFiddle:http://jsfiddle.net/Ls9gas2h/

点击控件位于76-88行:

this.clicktarget.on('click', function (event) {
            if (source.options.allfields) {
                if (!$(event.target).hasClass('deadfield')) {
                    event.stopPropagation();
                    source._open($(event.target));
                    source._runcheck();
                }
            } else {
                event.stopPropagation();
                source._open($(event.target));
                source._runcheck();
            }
        });

1 个答案:

答案 0 :(得分:1)

在打开点击列表之前,只需隐藏所有下拉列表:

this.clicktarget.on('click', function (event) {
    $(".multiple-selector-table").hide();
    ... other you code

Fiddle

更新。另一种选择:

您可以使用以下代码为每个下拉元素触发_close

this.clicktarget.on('click', function (event) {
    $(window).click();

Fiddle