2010-03-22 46 views
3

我有一個常用的十六進制顏色列表,我想列舉在我的jPicker綁定輸入文本字段下,我想了解如何在不打開jPicker顏色選擇器調色板的情況下更改jPicker活動顏色的值。jQuery jPicker>從文本鏈接(不是來自jPicker)分配jPicker的顏色

我設法創建一個函數,更新綁定到jPicker的輸入字段,但背景和picker.gif的顏色不更新。我想強制更新背景顏色,就好像從jPicker本身選擇顏色一樣。

這裏是我的激活鏈接代碼...

<span onclick=doColor(1,'cc9900')>cc9900</span> 

而這裏的JS處理

function doColor(el, color) 
{ 
if(el){$('#theme_header_color').attr('value', color);} 
else{$('#theme_sidebar_color').attr('value', color);} 
} 

回答

2

你嘗試改變輸入字段的值之後觸發keyup事件?

function doColor(el, color) { 
    $('#theme_header_color').val(color).trigger('keyup'); 
} 
+0

沒有。但那正是我所錯過的。謝謝抖動! – 2010-03-22 01:09:42

2

這是jPicker插件開發人員Chris Tillman。我剛剛將jPicker的新版本(V1.1.0)發佈到http://www.digitalmagicpro.com/jPicker/。這個新版本重寫了內部事件並重新實現了以前刪除的一些請求功能。

對於此問題最重要的是,Color對象現在是所有Color交互的事件父級,並且可以從腳本代碼進行更改。舊的事件模型從地圖,欄和文本字段中觸發事件,然後更新其他事件。現在他們都改變了Color對象,它將事件放下。

同樣在以前的版本中,從代碼更改顏色對象的唯一方法是更新保存HEX值的文本字段的值並觸發「keyup」事件。現在,新版本將允許您在活動顏色對象上調用「val」方法來更新顏色。

如果要更改代碼中的顏色,可以直接調用Color對象。

<div id="Picker">&nbsp;</div> 
<div id="Favorites"> 
    <span title="cc9900"/> 
    <span title="e2ddcf"/> 
    <span title="ffcc00"/> 
</div> 

,然後運行您這樣的代碼

$.jPicker('#Picker'); 
$('#Favorites span').click(
    function() 
    { 
    $.jPicker.List[0].color.active.val('hex', $(this).attr('title')); 
    }); 

將更新的顏色,在「標題」屬性指定的值,並更新所有的視覺顯示在選擇器。

1

對於任何好奇的人,我有一個類似的問題,在我找到這個之前,我找到了一個工作的例子。 https://files.nyu.edu/mr2723/public/picker.html

看起來最好的方法是在頁面加載時以編程方式分配點擊事件,而不是HTML「onclick」屬性。

$(document).ready(function() { 
    $.jPicker('#Picker'); 
    $('#spanID').click(function() { 
     $.jPicker.List[0].color.active.val('hex', color, $(this).attr('color')); 
    }); 
}); 
相關問題