【问题标题】:Add JQuery MultiSelect to existing MultiSelect object将 JQuery MultiSelect 添加到现有的 MultiSelect 对象
【发布时间】:2019-09-13 20:49:36
【问题描述】:

我正在尝试检测 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")
};

但似乎没有任何效果。有任何想法吗?谢谢

【问题讨论】:

    标签: javascript jquery jquery-ui-multiselect


    【解决方案1】:

    您能否创建一个 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 自定义事件处理程序可以为您工作。

    【讨论】:

      猜你喜欢
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      • 2012-02-05
      • 2022-01-11
      • 1970-01-01
      • 2014-02-11
      • 1970-01-01
      相关资源
      最近更新 更多