我正在尝试检测JQuery MultiSelect上的更改以触发另一个位置的更新。更改内容的常规javascript无法正常工作,因为select不会更改。我找到了一个称为“ beforeclose”的方法,该方法是从MultiSelect的close函数中调用的。我想我可以用。我发现,如果在进行MultiSelect时添加它,它会按预期工作,并在关闭选择时记录该消息。见下面:
$j("#selectId").multiselect({
checkAllText: 'Select all',
uncheckAllText: 'Deselect all',
beforeclose : function() {
console.log("before close")
}
}).multiselectfilter();
但是我不能这样做,因为MultiSelect是在其他地方创建的,所以我只需要在其中添加该方法即可。我尝试了很多不同的事情,例如:
$j("#selectId").multiselect().data("ech-multiselect").beforeclose = function() {
console.log("before close")
};
但是似乎没有任何效果。有任何想法吗?谢谢
答案 0 :(得分:0)
您可以创建一个Codepen或jsfiddle来复制您遇到的问题吗?我确定我或其他人可以协助您建立工作模型。
如果您想使用beforeclose,我认为您的语法有些偏离。如果是对话框,则可以使用
$( ".selector" ).dialog({
beforeClose: function( event, ui ) {}
});
// and bind an event listener
$( ".selector" ).on( "dialogbeforeclose", function( event, ui ) {} );
或者,您可以使用jQuery的on
函数。变更后的样子:
$(document).on('change', '#selectId', function() {
// Fires every time selectId is changed
});
https://api.jquery.com/on/#example-7,自定义事件处理程序可以为您服务。