2014-02-27 64 views
1

我有一个选择框mootools的选择框焦点

<select> 
    <option value="0">0 mins</option> 
    <option value="1">1 mins</option> 
    <option value="2">2 mins</option> 
</select> 

,我希望当访问者无论是在价值点击或点击其他地方上的选择框焦点的页面 - 即损失触发一个事件

我已经摆弄了四个小时,现在没有快乐。我现在就是这样:

var c = 0; 
$("selectTime").addEvent('click', function() { 
    if (c++ % 2 == 1) { 
     console.log(c); 
     //$(this).blur(); 
    } 
}); 

$('selectTime').click(function() { 
    if ($('select').is(':blur')) { 
     c = 1; 
    } else { 
     c = 0; 
    } 
}); 

有什么想法吗?

感谢

回答

0

添加多个事件相同的元素MooTools的语法是:

$('myElementID').addEvents({ 
    blur: function(){ 
     alert('blur'); 
    }, 
    click: function(){ 
     alert('click'); 
    } 
}); 

Example with you code

你可以尽管只使用change事件,当元素改变的时候触发。像:

$('myElement').addEvent('change', function(){ 
    alert('Select changed'); 
}); 

Example

注意你的代码的一部分被使用jQuery语法,部分使用MooTools的语法。

+0

嗨,谢谢你。是的,我看到我错误地复制了它,我正在玩这两个。在实验中,我无法在没有双击某个其他元素的情况下让选择框失去焦点。看起来,如果你点击一个选择框的侧面,那么模糊似乎并不有效。我现在已经解决了这个问题,但它涉及编写我自己的“下拉”这是一个div,并在各个线路周围放置标签来模拟下拉菜单。有了这个设置的模糊事件效果很好 - 只是没有选择 – user1616338

+0

@ user1616338你可以做一个小提琴(或适应我的问题)?你用什么浏览器btw? – Sergio

+0

嗨jsfiddle:http://jsfiddle.net/user1616338/vj6BD/ 我想我已经跟踪了这个问题。它在IE中正常工作,但不在FF中。如果您点击选择框,则显示下拉菜单。如果您再点击框的侧面,则下拉消失。这是你所期望的。然而,在FF中,您需要再次单击页面以获取模糊事件,但在IE中,模糊事件会立即发生。 – user1616338