javascript - 结合点击和 dbclick

标签 javascript jquery

我应该如何将以下脚本组合成一个单一的工作脚本? 当用户拾取的颜色出现时单击 ,再次单击颜色变为白色,双击时出现浅绿色。代码太长,我试着把它们组合起来,但我弄错了。

//single click
$('#pixel_canvas').on('click', 'td', function () {
    var color = $('#colorPicker').val();
    if ($(this).hasClass("blank") == true) {
        $(this).css('background-color', color);
        $(this).removeClass('blank');
    }
    else {
        $(this).addClass('blank');
        $(this).css('background-color', 'white');
    }
});
//double click
$('#pixel_canvas').on('dblclick', 'td', function () {
    var color = $('#colorPicker').val();
    if ($(this).hasClass("blank") == true) {
        $(this).css('background-color', color);
        $(this).removeClass('blank');
    }
    else {
        $(this).addClass('blank');
        $(this).css('background-color', 'aqua');
    }
});

最佳答案

我会这样做:

// Take your actual 'core' code and turn it into a jQuery function:
$.fn.setColor(colorOff){
    if( $(this).hasClass("blank") ){
        $(this)
            .css('background-color', $('#colorPicker').val())
            .removeClass('blank');
    } else{
        $(this)
            .addClass('blank')
            .css('background-color',colorOff);
    }
}

// Now bind the events to the element and pass the color needed for the events:
$('#pixel_canvas')
    .on('click','td',function(){
        $(this).setColor('white')
    })
    .on('dblclick','td',function(){
        $(this).setColor('aqua')
    });

关于javascript - 结合点击和 dbclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48278138/

相关文章:

jquery - 如何在表格内容上添加工具提示

javascript - 无法通过 REST 客户端发送数组中的多个对象(Insomnia)

javascript - 单击外部 DIV

javascript - 如何让WebWorker调用HTTPS URL

javascript - 添加具有所选数量的价格 - JavaScript

javascript - 使用Javascript函数将td的onclick设置为null

jquery - 选择第一个空输入失败

javascript - 根据条件删除 div 滚动条

javascript - 在显示 div 中使用 Jquery .data

javascript - 用jQuery询问<div>是否有背景图片?