javascript - <select> 元素并观察 ('click' ) 选项切换 option.selected

标签 javascript dom prototypejs

我已经看到一些使用 jQuery 的示例可以满足我的要求,但我正在为使用 Prototype 框架的应用程序开发一个插件,并希望坚持这一点。

基本上,我想要的功能就像一直按下 ctrl 键一样。如果单击选定的选项,我希望它取消选择。

这是我使用 jQuery 找到的示例:http://jsbin.com/idofa

我的版本不起作用,因为事件在默认操作选择它之后触发(这导致它选择然后立即被取消选择)。

option.observe('click', function(event){
    this.selected = !this.selected;
});

我尝试添加 event.stop();和 event.preventDefault();两者似乎都没有效果。

谢谢!

最佳答案

正确答案,来 self 上面的评论:

选择是在鼠标按下时执行的,因此此处必须使用 'mousedown' 事件而不是 'click'

option.observe('mousedown', function (event) {
    this.selected = !this.selected;
    event.stop();    // unnecessary in this case, but I think it's good practice
});

fiddle 示例,由 Victor 编辑:

http://jsfiddle.net/RP7em/3/

关于javascript - <select> 元素并观察 ('click' ) 选项切换 option.selected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13371693/

相关文章:

javascript - 使用 JavaScript 的动态下拉菜单,无需使用数据库

java - 将 JSONArray 作为 HTTP 实体返回

javascript - 在ajax调用上加载更多加载gif仅适用于最初存在的div

javascript - 从 html 中删除标签的方法的安全问题

页面上的 JavaScript 错误

javascript - 寻找未定义值的正确方法是什么

javascript - 有没有办法改变堆栈跟踪中函数的路径?

html - XPath 选择带有单个子元素的 div 忽略空格?

javascript - 我应该如何将此原型(prototype)移植到 JQuery?

javascript - 使用 Prototype 遍历 javascript 中对象的每个属性?