簡體   English   中英

jQuery即使在直接加載文檔時也不會觸發點擊?

[英]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所示,有兩個錯誤:

  • 不要使用“ new”關鍵字創建事件
  • 在body元素上觸發事件

嘗試轉義replaceWith字符串中的撇號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM