Javascript 如何停止.mouseenter()效果

Javascript 如何停止.mouseenter()效果,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在创建一个类似于的画板。我有以下功能来定义用户将要做的绘图类型:黑白、随机颜色或灰色阴影。用户通过单击不同的按钮来决定使用哪个案例,每个按钮都称为单独的案例: switch (colorMode){ case 'bw': $(".grid").mouseenter(function(){ $(this).css('background-color', "#EEEEEE"); }); break; cas

我正在创建一个类似于的画板。我有以下功能来定义用户将要做的绘图类型:黑白、随机颜色或灰色阴影。用户通过单击不同的按钮来决定使用哪个案例,每个按钮都称为单独的案例:

switch (colorMode){
    case 'bw':
        $(".grid").mouseenter(function(){ 
            $(this).css('background-color', "#EEEEEE");
        });
        break;
    case 'randomColor':
        $(".grid").mouseenter(function(){
            var randomColor = Math.floor(Math.random()*16777215).toString(16); //random number between 0 and 1, nultiplied by largest hexidecimal/color value, and the converted to a string.
            $(this).css('background-color', "#" + randomColor);
        });
        break;
    case 'fading':
        $(".grid").mouseenter(function(){
            var currentColor = $(this).css('background-color').slice(4, -1).split(', ');
            var newColor = [];
            for (i=0; i<currentColor.length; i++){
                newColor[i] = Math.round(parseInt(currentColor[i]) - (parseInt(currentColor[i])*.1));
            }
            var rgbString = "rgb(" + newColor[0] + "," + newColor[1] + "," + newColor[2] + ")"; 
            $(this).css('background-color', rgbString);
        });
        break;
}
开关(彩色模式){
案例“bw”:
$(“.grid”).mouseenter(函数(){
$(this.css('background-color',“#EEEEEE”);
});
打破
案例“随机颜色”:
$(“.grid”).mouseenter(函数(){
var randomColor=Math.floor(Math.random()*16777215).toString(16);//0到1之间的随机数,由最大的十六进制/颜色值乘以,并转换为字符串。
$(this.css('background-color',“#”+randomColor);
});
打破
“衰退”案例:
$(“.grid”).mouseenter(函数(){
var currentColor=$(this).css('background-color').slice(4,-1).split(',');
var newColor=[];

对于(i=0;i请尝试在事件处理程序内设置
开关

$(".grid").mouseenter(function(){
    switch(colorMode) {
         //...
    }
});

这样,事件处理程序将只绑定一次。

请尝试在事件处理程序内设置
开关:

$(".grid").mouseenter(function(){
    switch(colorMode) {
         //...
    }
});

这样,事件处理程序将只绑定一次。

元素对于同一事件可以有多个事件侦听器。“终止上一个”可能是您案例中最简单的解决方案。请参阅。元素对于同一事件可以有多个事件侦听器。“终止上一个”在您的情况下,这可能是最简单的解决方案。请参阅。