即使指向文档加载,jQuery也不会触发点击?

时间:2011-10-13 22:39:33

标签: php javascript jquery html css

我正在拧一个颜色选择器,因为我找不到一个具有我想要的功能(你现在想到所有可能的功能都会被包括在内,但我找不到一个支持RGBA输出的可调节功能alpha级别)我遇到了脚本部分的问题,它将在编辑器启动时加载当前颜色。我不会厌倦你所有的代码,我会尽力保持它的基础。

首先,所有这些都在标准的$(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转换的颜色 - 一个通过toRgb()函数传递rgb alpha的修改版本(而不是只传递它)在.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函数运行,并更新编辑器显示,但选择器不移动,因为该单击功能更新所有预览和写入(非隐藏)输入的颜色,所有这些都不会更新。

初始替换后循环调用和重置按钮调用之间没有区别,我甚至检查了事件和彼此的精确副本(我将它们复制到另一个程序并运行比较,它们是确切的副本)。我已经尝试过在其他类似消息中发布的理想(在谷歌搜索问题的其他地方),包括让循环模拟点击重置按钮,但没有任何效果。

有什么想法吗?我很乐意让点击正常点火,否则它将是一个代码点击模拟点击,除了使脚本更大(现在不完全修剪)之外什么都不做。

3 个答案:

答案 0 :(得分:0)

由于e是一个窗口/文档事件,您是否应该在文档上而不是在颜色选择器上触发它?

正如在jQuery API上看到的那样,有两个错误:

  • 不要使用“new”关键字
  • 创建活动
  • 在body元素上触发事件

答案 1 :(得分:0)

尝试在 replaceWith 字符串中转义撇号。

答案 2 :(得分:0)

你有一个错字;

    $(this).replaceWith(
        "This is all the display code, it's working fine." // all singlequotes before
    )