繁体   English   中英

jQuery UI Multiselect事件

[英]jQuery UI Multiselect Events

我正在使用 Multiselect jquery组件。 而且我不知道如何触发和订阅该事件。 (我是JS新手)。

到目前为止,我一直在尝试在ui.multiselect.js文件的_updateCount函数中触发collectionChanged事件:

_updateCount: function() {
        this.selectedContainer.find('span.count').text(this.count + " " + $.ui.multiselect.locale.itemsCount);

        //How do I subscribe to the event?
        $(this).trigger('collectionChanged');
    }

然后,我尝试从asp.net订阅“ collectionChanged”事件:

  $('#<%= dropDown.ClientID %>').bind('collectionChanged', function ()
     { 
         alert("Changed!");
     });

生成的页面标记是这样的:

<select name="ctl06$dropDown" id="ctl06_dropDown" class="multiselect" multiple="multiple" name="countries[]">
        <option value="1134">A</option>
        <option value="1980">B</option>
        <option value="17789">C</option>
        <option value="180367">D</option>
        <option value="1990673">E</option>

    </select>

 <script type="text/javascript">
 $(function () { $('.multiselect').multiselect(); });

 $('#ctl06_dropDown').bind('collectionChanged', function ()
 {   
     //Not working (never triggerd)
     alert("Changed!");
 });

</script>

谢谢。

的值this_updateCount函数不是DOM元素。 对于您要尝试做的事情,如果我理解得很好,则需要在DOM元素中触发自定义事件,然后在同一DOM元素上侦听该自定义事件。 因此,您的代码有两个问题:第一个问题是您尝试使用$(this)触发事件,而this不是您期望的,第二个问题是您正在侦听DOM元素上的事件永远不会触发该事件。 如果您执行以下操作:

_updateCount: function() {
    this.selectedContainer.find('span.count').text(this.count + " " + $.ui.multiselect.locale.itemsCount);
    $("#ctl06_dropDown").trigger("collectionChanged");
}

然后,您的行$('#ctl06_dropDown').bind('collectionChanged'...应该可以正常工作。

您使用的插件不支持事件。

使用它的下一个版本。 http://quasipartikel.at/multiselect_next/

如果在http://quasipartikel.at/multiselect_next/#optionTabs-3上用示例代码说明了事件,

您需要同时使用称为“ selected”和“ deselected”的事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM