[英]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.