<select>元素和观察('点击')选项以切换option.selected </select>

时间:2012-11-14 01:18:04

标签: javascript dom prototypejs

我已经看到了一些使用jQuery做我想做的事情的例子,但是我正在为一个使用Prototype框架的应用程序开发一个插件,并希望坚持这一点。

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

以下是我使用jQuery发现的一个示例:http://jsbin.com/idofa

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

正确的回答,来自我上面的评论:

选择是在mousedown上执行的,因此必须在此处使用 'mousedown'事件代替'click'

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

Victor编辑的小提琴示例:

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