javascript - 类更改后的 Jquery 函数

标签 javascript jquery

假设我有一个带有功能的按钮,将一个名为 open 的类添加到 div#foo 元素,当这一切完成后,我需要更改其他元素样式div#bar

仅供引用,div#bar 的默认样式是 position:fixed

这是我的代码

function checkForChanges()
{
    if ($('#foo').hasClass('open'))
        $('#bar').css('position','relative');
    else
        setTimeout(checkForChanges, 500);
}  
$(checkForChanges);

它就像一个魅力,但问题是如果#foo不再有名为的类,如何将#bar的样式恢复为默认样式打开

坦白说,我没有 JavaScript 经验,所以我不知道“setTimeout(checkForChanges, 500);”

我需要的只是当 #foo 具有类 open 时更改 #bar 样式并获取 #bar > 当#foo不再有类open

时,样式恢复为默认

最佳答案

您不需要为此设置超时或间隔。利用CSS specificity :

var open = 'someCondition';
if(open) {
    $('#foo').addClass('open');
    $('#bar').addClass('foo-open');
} else {
    $('#foo').removeClass('open');
    $('#bar').removeClass('foo-open');
}
#bar {
    position: fixed;
}

#bar.foo-open {
    position: relative;
}

无论什么代码负责将类open添加到#foo,也应该将类foo-open添加到#bar .

另请查看cssspecificity.com CSS 特异性的有趣可视化。

关于javascript - 类更改后的 Jquery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49004776/

相关文章:

javascript - 获取所选下拉列表项的值

javascript - GOTO iMacros 中的循环变量

javascript - jQuery 无法在 WordPress 网站上运行

javascript - 使用 CSS 和 jQuery 构建金字塔

jquery - 我将如何着手将某种动态范围计数器应用于 jQuery 和 CSS?

javascript - 为什么 jquery 中的 event.target 不起作用

javascript - 如何在javascript中的对象内部连接子对象数组?

javascript - 用 CSS 生成的图像替换输入字段中的文本

javascript - Three.js 敌人向玩家移动

javascript - 返回 tr 标签的 "value"属性