wenzhixin multipleSelect-JQuery插件上的Click-Event无效

问题描述 投票:0回答:1

现状:

我使用的是wenzhixin JQuery Multiple-Select-Plugin来提供一个多选下拉框(参见http://multiple-select.wenzhixin.net.cn/home/)。我在我的页面上有两个Multiselect-Dropdownbox实例(我在JSFiddle中使它类似 - 但它似乎工作......)。

问题:

我无法在我的.done()中获取onClick-Listener - 两个AJAX调用的方法可以工作。在下面的示例中,单击() - 事件

$('#cbTailoringCategory').multipleSelect( { onClick: function() {...} })

不工作,但它将选择字段变为多选下拉列表。但是当我写下change() - 这样的监听器(但是这会激发两次)时它会起作用:

$('#cbRoles').change(function (event) {
    refreshDiagramNodes();
}).multipleSelect({

});

我如何获得click() - 事件到世界,我不必使用change() - 方法?

的jsfiddle

我试图在JsFiddle中隔离问题,但在这里工作: - /

https://jsfiddle.net/schludi/6z0ns475/

在我的代码中使用AJAX-Calls进行全面的...当...完成... jquery:

我的代码的原始AJAX调用如下:

var myTailoringCategories = {};
var myKeypointResponsibles = {};
function loadTailoringCategories() {

$.when(
    $.ajax({
        type: "POST",
        url: '/Services/DiagramService.asmx/GetTailoringCategories',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            var pcpTailoringCategories = msg.d;

            $.each(pcpTailoringCategories, function (index, pcpTailoringCategory) {

                myTailoringCategories[pcpTailoringCategory.tailoringcategory] = pcpTailoringCategory.tailoringelements;

                $('#cbTailoringGroups').append($('<option>', {
                    value: pcpTailoringCategory.tailoringelements,
                    text: pcpTailoringCategory.tailoringcategory
                }));
            });
        },
        error: function (e) {
            console.log('FEHLER! ' + e.responseText);
        }
    }),
    $.ajax({
        type: "POST",
        url: '/Services/DiagramService.asmx/GetKeypointResponsibles',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            var keypointResponsibles = msg.d;

            $.each(keypointResponsibles, function (index, keypointResponsible) {

                myKeypointResponsibles[keypointResponsible] = keypointResponsible;

                $('#cbRoles').append($('<option>', {
                    value: keypointResponsible,
                    text: keypointResponsible
                }));
            });
        },
        error: function (e) {
            console.log('FEHLER! ' + e.responseText);
        }
    })
).done(function (result1, result2) {
    updateCBFilter();

    // Hier wird aus der Multiselect-Box eine Rollen-Liste
    $('#cbRoles').change(function (event) {
        refreshDiagramNodes();
    }).multipleSelect({

    });

    // Hier wird aus der Multiselect-Box eine Tailoring-Liste
    $('#cbTailoringGroups').multipleSelect({
        onClick: function () {
            alert('Click Event');
        }
    });

    $('#cbTailoringGroups').multipleSelect('refresh');

    //initializeTailoringCategories();
    loadAllDiagramNodes(diagramType);
});

}

jquery jquery-plugins asp.net-ajax onclicklistener multiple-select
1个回答
0
投票

我发现了,那个功能

 refreshDiagramNodes();

产生错误,以便Javascript引擎提前退出/终止 - 按此顺序,脚本onClick() - 事件未触发。

© www.soinside.com 2019 - 2024. All rights reserved.