繁体   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