wenzhixin multipleSelect-JQuery 插件点击事件失效
The Click-Event on wenzhixin multipleSelect-JQuery plugin is not working
现状:
我正在使用 wenzhixin JQuery Multiple-Select-Plugin 来提供 multiselect 下拉框(参见 http://multiple-select.wenzhixin.net.cn/home/ )。我的页面上有两个那个 Multiselect-Dropdownbox 的实例(我在 JSFiddle 中使它相似 - 但它似乎工作...)。
问题:
我无法在我的 .done() 方法中获得 onClick-Listener - 两个 AJAX- 调用的方法。在我下面的示例中,click()-Event
$('#cbTailoringCategory').multipleSelect( { onClick: function() {...} })
不起作用,但它会将 select-字段变成多select-下拉列表。
但是当我像这样编写 change()-Listener 时它会起作用(但这会触发两次):
$('#cbRoles').change(function (event) {
refreshDiagramNodes();
}).multipleSelect({
});
问题
我怎样才能使 click()-事件正常工作而不必使用 change()-方法?
JsFiddle
我试图找出 JsFiddle 中的问题,但它在这里工作:-/
https://jsfiddle.net/schludi/6z0ns475/
在我的代码中使用 AJAX 全面调用-完成...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);
});
}
我发现函数
refreshDiagramNodes();
产生了一个错误,因此 Javascript 引擎 exits/terminates 更早 - 为此,脚本 onClick()-Event 尚未触发。
现状:
我正在使用 wenzhixin JQuery Multiple-Select-Plugin 来提供 multiselect 下拉框(参见 http://multiple-select.wenzhixin.net.cn/home/ )。我的页面上有两个那个 Multiselect-Dropdownbox 的实例(我在 JSFiddle 中使它相似 - 但它似乎工作...)。
问题:
我无法在我的 .done() 方法中获得 onClick-Listener - 两个 AJAX- 调用的方法。在我下面的示例中,click()-Event
$('#cbTailoringCategory').multipleSelect( { onClick: function() {...} })
不起作用,但它会将 select-字段变成多select-下拉列表。 但是当我像这样编写 change()-Listener 时它会起作用(但这会触发两次):
$('#cbRoles').change(function (event) {
refreshDiagramNodes();
}).multipleSelect({
});
问题
我怎样才能使 click()-事件正常工作而不必使用 change()-方法?
JsFiddle
我试图找出 JsFiddle 中的问题,但它在这里工作:-/
https://jsfiddle.net/schludi/6z0ns475/
在我的代码中使用 AJAX 全面调用-完成...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);
});
}
我发现函数
refreshDiagramNodes();
产生了一个错误,因此 Javascript 引擎 exits/terminates 更早 - 为此,脚本 onClick()-Event 尚未触发。