javascript - JQuery/JavaScript addClass 不起作用

标签 javascript jquery

我有一个包含元素的 div。当我单击一个元素时,就会发生一项操作。在操作期间,我想让我的 div 颜色更改为黑白,并且在操作之后它将重置颜色。

所以我创建了一个简单的 css3 类:

gray {
    background-color:red;
    -moz-filter: grayscale(100%);
    -webkit-filter: grayscale(100%);
    filter: grayscale(100%);
}

在我的脚本中我有两个函数:

function enableWaitState( ) {
   $($("#chart")).addClass( "gray"); 
}

function disableWaitState( ) {
    $($("#chart")).removeClass( "gray");
}

在我的 javascript 代码中,我编写了单击按钮时调用的方法:

function back() {
    enableWaitState( ); 
    // here doing some javascript code
    disableWaitState(  );
}

}

不幸的是,它不起作用。但是如果我在enableWaitState()和disableWaitState()之间进行ajax调用,它就会起作用!

有什么想法吗?

最佳答案

您需要从选择器中删除额外的 $()

function enableWaitState( ) {
   $("#chart").addClass( "gray"); 
}

function disableWaitState( ) {
    $("#chart").removeClass( "gray");
}

此外,此代码仅在图表元素加载到 DOM 中后才起作用。您可以使用控制台来检查:

 console.log($("#chart").length)

关于javascript - JQuery/JavaScript addClass 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45780090/

相关文章:

javascript - 使用 webgl 在鼠标移动上创建一个连续动画回到原始状态的涂抹/液化效果

javascript - 替换折叠固定标题中的图像(滚动) - javascript

javascript - jQuery:将 setIntervals 分配给数组时出现问题

javascript - 如何在 typescript 中使用 angular-ui-bootstrap(模态)?

javascript - 为什么 array.map(String.fromCharCode) 这么慢?

javascript - 重定位一个伪元素

jquery - 去掉 jQuery 在通过 ajax 返回 HTML 时添加的斜杠?

javascript - UI-Bootstrap Collapse 不会在新路线上重置

javascript - 每 x 次 AngularJS 隐藏和显示 div

javascript - 无法看到php变量的值