用multiselect做了个多选提交的功能,opttion数量少呢情况还好,但是opttion数量多了起来,需要一个统计数量,比如左边目前有多少opttion,右边又有多少。
简单用onchange触发写了个统计,再在两个框下面显示当前数量。触发的机制却不是我想要的,我希望是只要左右两个框的opttion发生变化就立刻更新这个数值,但是onchange的机制是select的val变化才触发,就是说opttion变化后,你还要选中另外的opttion才会触发onchange。效果看起来就像延后了。
随后用oninput、onclick、onmouse等等触发事件,但是都达不到我的需求。
后面思路变了一下,html各种on事件都是需要触发的,然而我设置各种事件触发并不会很好改善。在js里可以用("#").change()触发onchange事件,那我能不能在multiselect的js里面添加("#").change()事件呢?
打开multiselect的js,找到了几个可能相关的函数,beforeMoveToLeft、afterMoveToLeft、beforeMoveToRight、afterMoveToRight(函数名大概是这几个)before函数里是有return 1;,after函数为空。不执行操作,每个函数带有三个参数(e,t,o),分别是左边select,右边select,移动的opttion。在after函数里加了句e.change(); ,应该加t.change();也能触发我想要的效果。
保存好之后,再测试,无论双击opttion还是通货button移动,都能立刻触发onchange事件。
04-12
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交