2012-12-10 29 views
17

使用新的輸入=在Chrome中的「顏色」元素的事件處理程序觸發一個新的彈出對話框:的HTML5彩色輸入元素

screenshot color dialog

我想知道是否有一個事件處理程序,火災只要在這個預覽窗口的變化值,然後單擊「確定」

jQuery('#colorinput').on('change', function() { // fires only after clicking OK 
    jQuery('#main').css('background-color', jQuery(this).val()); 
});​ 

後不僅可以看到http://jsfiddle.net/Riesling/PEGS4/

回答

13

你要找的是input event功能。

modified fiddle現在應該在所有的(體面)瀏覽器工作:

$('#colorinput').on('input', function() { ... }) 
+0

不幸的是,Google Chrome似乎不再支持本評論發佈之日的這一事件。 –

+1

@acicali:我相信你錯了。我的小提琴仍然在最新發布的作品 –

+0

對不起,我誤解了小提琴。輸入事件似乎只是反映了這種情況下的變化事件,我期待着不同的行爲。 –

-1

要獲得色彩輸入的值,你應該使用w3school

<input name="eventColor" type="color" onchange="getColorVal(eventColor.value)"/> 

提供的事件屬性onchange並定義處理該事件

function getColorVal(colorValue){ 

    alert(colorValue); 
} 
+0

如何改爲執行$('#idname')。change();事件? – shubniggurath

+1

這並沒有回答在這篇文章中的問題,onchange只在確定按鈕點擊後觸發 – Naga

+0

應避免內聯Javascript(請參閱[這個SO回答](http://stackoverflow.com/a/21975639/379160))。 – thirdender

1

你真的想每個HTML規範輸入事件。 在輸入元素失去焦點之前,沒有什麼能保證更改事件。

「每當用戶已修改控制數據。當值被提交的變化事件觸發輸入事件觸發時,如果是有道理的用於控制,否則當控制失去焦點。」