[英]jQuery not firing click even when directed to on document load?
我正在絞合一個拾色器,因為我找不到想要的功能(您可能認為現在所有可能的功能都已包括在內,但是我找不到能夠支持具有可調Alpha級別的RGBA輸出的功能)我在啟動編輯器時加載當前顏色的腳本部分遇到了問題。 我不會為您帶來所有代碼,我會盡力使其保持基礎。
首先,所有這些都在標准的$(docuemnt).ready()內部,它要做的第一件事是用我的顏色選擇器代碼替換輸入,然后嘗試運行set_color函數。
$('.rgbapicker').each(function(){
$(this).replaceWith(
'This is all the display code, it's working fine.'
)
set_color('#'+$(this).attr('name')+' ',$(this).val())
});
set_color函數采用選定的變量,該變量控制您使用的顏色選擇器和顏色,該顏色使用tinycolor.js進行轉換-修改后的版本將rgb alpha通過toRgb()函數傳遞(而不是僅將其傳遞給。 toRgbString()函數)。
function set_color(selected,color){
var color = tinycolor(color).toRgb();
$(selected+'.disp_s_color_r').val(color.r); // This code
$(selected+'.disp_s_color_g').val(color.g); // Changes the
$(selected+'.disp_s_color_b').val(color.b); // Color selector
$(selected+'.disp_s_color_a').val(color.a); // Display
var color = tinycolor(color).toHsl();
console.log(selected+' - '+color.h+' - '+color.s+' - '+color.l);
var e = new jQuery.Event("click");
e.pageX = 180;
e.pageY = 180;
$('.colorbase').trigger(e);
編輯器使用您單擊的hsl光譜圖像,然后協調鼠標並進行數學計算以將其全部識別出來,這是一種非常基本的方法,效果很好。 當我單擊編輯器時,它會正確更新(不使用此處寫的任何內容),當我按下“重置”按鈕時,它將觸發此功能並正常工作(它會更新選擇區域的XY,突出顯示您選擇的顏色)但是在初始循環中加載它時不會觸發。 set_color函數將運行,並更新in編輯器中的顯示,但選擇器不會移動,並且由於單擊函數可更新所有預覽,而寫入(未隱藏)輸入的顏色則不會更新。
初始替換后循環調用和重置按鈕調用之間沒有區別,我什至檢查了事件,並且彼此之間有精確的副本(我將它們復制到另一個程序中並運行比較,它們是精確的副本)。 我已經嘗試過在此處(以及在搜索該問題時的其他地方)其他類似消息中發布的理想,包括讓循環模擬對重置按鈕的單擊,但是沒有任何效果。
有任何想法嗎? 我只想讓點擊正確觸發,否則將是一堆代碼,無法模擬點擊,只會使腳本變大(現在還不完全修剪)。
你有錯字;
$(this).replaceWith(
"This is all the display code, it's working fine." // all singlequotes before
)
由於e
是窗口/文檔事件,因此您是否應該在文檔上而不是在顏色選擇器上觸發它?
如jQuery API所示,有兩個錯誤:
嘗試轉義replaceWith字符串中的撇號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.