我使用拾色器從http://jscolor.com/使用動態輸入
jscolor.js我試圖將其連接到一些動態的投入,但無濟於事。就動態輸入而言,在頁面加載時輸入不存在,只有在用戶點擊某些輸入後纔可用。例如,我有一行數據,每行都有不同的背景顏色。這行數據使用ajax加載。在每行的末尾,有一個編輯按鈕。通過單擊編輯按鈕,它將顯示點擊行的輸入文本框。我想在用戶點擊輸入文本框時調用jscolor選擇器。我怎樣才能做到這一點?
感謝
我使用拾色器從http://jscolor.com/使用動態輸入
jscolor.js我試圖將其連接到一些動態的投入,但無濟於事。就動態輸入而言,在頁面加載時輸入不存在,只有在用戶點擊某些輸入後纔可用。例如,我有一行數據,每行都有不同的背景顏色。這行數據使用ajax加載。在每行的末尾,有一個編輯按鈕。通過單擊編輯按鈕,它將顯示點擊行的輸入文本框。我想在用戶點擊輸入文本框時調用jscolor選擇器。我怎樣才能做到這一點?
感謝
幫我
<script>
$(document).on('click', '#myPickerId', function() {
var obj = $(this)[0];
if (!obj.hasPicker) {
var picker = new jscolor.color(obj, {}); //
obj.hasPicker = true;
picker.showPicker();
}
});
</script>
在我的情況下,機械手控制是動態的,因爲它是內部Knockout.js「與」隱藏了,並重新創建選擇器時,它需要聲明。
我只是有這個問題,但幸運的是它很容易修復。你需要(重新)初始化jscolor你動態創建後您的輸入:
jscolor.init()
最簡單的解決方案,只是我們厭倦了在您生成輸入時調用它,因爲它可能會減慢速度。 –
這不適用於我,我得到一個錯誤,說jscolor.init不是一個函數:/請詳細說明,如果有人知道現在如何工作,那麼我重置jscolor並再次加載腳本與Jquery ... window.jscolor =未定義; $ .getScript(「../ Scripts/jscolor.min.js」,function(){ }); – mathkid91
出於某種原因jscolor.init()對我沒有工作,看着我叫
jscolor的代碼。 installByClassName( 「jscolor」);
功能。
所以......
$(document).ready(function() {
jscolor.installByClassName("jscolor");
});
希望它可以幫助
什麼'$點(本)[0]'?這不就是沒有任何收益而返回這個「這個」嗎? – Carcigenicate
@Carcigenicate我認爲這是因爲'$(this)[0]'返回一個數組,'jscolor'需要實際的div元素。 – iled
$(this)[0]獲取實際的DOM元素,而不是jQuery的元素。 – aizquier