首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >引导选择事件参数

引导选择事件参数
EN

Stack Overflow用户
提问于 2016-02-11 20:19:07
回答 4查看 5.1K关注 0票数 5

我正在使用引导选择插件(http://silviomoreto.github.io/),并处理更改事件"changed.bs.select“来捕获任何选择更改。根据https://silviomoreto.github.io/bootstrap-select/options/的文档,“此事件在select的值被更改后触发,它通过事件、clickedIndex、newValue、oldValue。”

我想了解newValue和oldValue到底代表了什么。因为在新值为true而oldValue为false的情况下总是如此。

这里有一个小提琴来说明我的观点。

https://jsfiddle.net/muojdbh9/

代码语言:javascript
运行
复制
<select class="selectpicker">
  <option>Mustard</option>
  <option>Ketchup</option>
  <option>Relish</option>
</select>

<div class="res">
Waiting for a change event
</div>

jQuery

代码语言:javascript
运行
复制
$(".selectpicker").on('changed.bs.select', function (event, clickedIndex, newValue, oldValue) {
    $("div.res").html("newValue: " + newValue + "<BR>oldValue: " + oldValue);
});
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-09-20 00:04:20

这不是一个错误。看来,newValueoldValue的行为并不像您所期望的那样。newValueoldValue的操作方式都是相同的。您所看到的布尔值引用所选选项的前一状态和新状态。

true表示已选定,而false表示未选定。

如果新选择的选项以前没有处于所选状态,它将返回如下:

newValue: trueoldValue: false

如果先前选择了所选选项,它将返回如下:

newValue: falseoldValue: true,因为它取消了元素的选择。

这一点由caseyjhol在这里处理:

https://github.com/silviomoreto/bootstrap-select/issues/1378/#issuecomment-216393099

票数 3
EN

Stack Overflow用户

发布于 2016-06-13 10:19:40

如果你想让你期待的行为改变

that.$element.trigger('changed.bs.select', [clickedIndex, $option.prop('selected'), state]);

that.$element.trigger('changed.bs.select', [clickedIndex, $option.prop('value'), prevValue]);

在引导-select.js中

票数 4
EN

Stack Overflow用户

发布于 2016-02-11 21:26:18

newValue表示新选择的选项的" selected“属性,而oldValue表示以前选择的选项的" selected”属性。由于新选项将始终被选中,旧选项将始终被取消选择,因此它们分别返回true和false。这可能是引导select开发人员的一个错误--他们似乎是想传递选项元素本身或选项值,而不是他们的“选择”属性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35349239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档