javascript - 将 JQuery MultiSelect 添加到现有的 MultiSelect 对象
问题描述
我正在尝试检测 JQuery MultiSelect 上的更改以触发另一个地方的更新。更改内容的正常 javascript 不起作用,因为选择不会更改。我找到了一个名为“beforeclose”的方法,它是从 MultiSelect 的关闭函数中调用的。我想我可以使用它。我发现如果我在制作 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")
};
但似乎没有任何效果。有任何想法吗?谢谢
解决方案
您可以创建一个 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自定义事件处理程序可以为您工作。
推荐阅读
- javascript - 倒计时存储javascript
- gpu - 带 gpu 的 Lightgbm 分类器
- c - 在函数中更新数组会导致指针丢失
- azure - 向事件网格 API 连接验证系统分配的身份
- java - 如何使用 Java 从 Oracle 数据库中获取记录
- tensorflow - Tensorflow padding='SAME' 在卷积操作之前/之后应用
- android - 当我尝试在 kotlin 中声明意图时,android 应用程序在启动时崩溃
- elasticsearch - 通过 Presto 查询时 Elastic Search 索引的计数不同
- java - 为什么 Int 中 MAX_VALUE 的溢出使其为负值,但在字节中保持为正值?
- raku - 使用赋值运算符时,“方法‘ASSIGN-KEY’的调用者必须是对象实例”