2012-07-24 54 views
4

改變我已經當所選項目被改變下面的代碼從而消除一個選擇菜單的焦點:移除焦點上改變選擇元件上,並且還如果不與jquery

$("select").change(function() { 
    $(this).blur(); 
}); 

然而,如果我不選擇一個不同的選項到已經選擇的選項,blur()函數不會運行......因爲沒有任何變化。

是否有「更改或未更改」功能?

回答

1

嘗試

var c = 0; 
$("select").bind('click', function() { 
    event.stopPropagation(); 
    if (c++ % 2 == 1) 
    { 
     console.log(c); 
     $(this).blur(); 
    } 
}); 

$('html').click(function() { 
    if ($('select').is(':focus')) 
     c = 1; 
    else 
     c = 0; 
}); 
​ 

jsfiddle.net/5eE8x

更新。

+0

如果用戶通過單擊關閉菜單而不是選擇相同的選項來關閉菜單,該怎麼辦? - 此外,這似乎並不適用於Safari – Tom 2012-07-24 16:34:51

+0

如果我瞭解你,那麼我認爲瀏覽器會自動使用'blur'(瀏覽器行爲)。 – Novak 2012-07-24 16:37:23

+0

點擊事件不會觸發我在Chrome上 – bcoughlan 2012-07-24 16:37:24