2014-02-27 98 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