【问题标题】:How do I get one element to respond to the click of another element? - CSS/jQuery如何让一个元素响应另一个元素的点击? - CSS/jQuery
【发布时间】:2010-12-21 06:10:38
【问题描述】:

问题很简单,但在我的实现中出现了问题。

你可以看到我的实现here

所以我想要发生的是,当您单击框#1 中的一个名称时,虚线和虚线圆圈中的#1 都变成黑色和实心。虚线不是边框。当您单击其他相应框中的任何其他数据时,也会发生同样的情况。

我面临的主要问题是,当我在 jQuery 中使用 .css 函数手动更改颜色和边框时,效果很好。但是,我想用切换类修改它(因为我无法让 toggle() 与 css 函数一起使用) - 这样当你单击它一次时,你会看到单击的元素突出显示(带有 1px 边框 -此功能已经存在),并且方框(和虚线)的相应编号变为纯黑色。

谢谢。

【问题讨论】:

    标签: jquery html css


    【解决方案1】:

    看起来 JavaScript 没问题。我唯一能看到搞砸的就是这一行:

    $('#bc1 dashed-circle').toggleClass('bc-dashed-to-solid-circle');
    

    您需要将该选择器更改为#bc1 .dashed-circle

    破折号和数字不改变颜色的原因是因为特殊性。您使用选择器 #blank-dashboard-breadcrumb span 声明它们的正常颜色 (#bdbebf) - 一个 id 和一个元素。您使用.bc-dotted-to-solid.bc-dashed-to-solid-circle 声明“选定”颜色(黑色)——简单的类。即使破折号和 1 具有适当的类,它们仍然有一个更具体的选择器告诉它们保持灰色。

    【讨论】:

    • 我知道我的问题是这样的。问题是......我该如何解决这个问题?我包含了您的解决方案,但它没有做我需要的事情。关于如何实际获得我想要的功能的任何进一步建议?我认为你在正确的轨道上。
    • 嗯,我注意到的另一件事是您将点击侦听器应用于所有不同的 trs,但它们都仅在第一个数字上更改了类。你说的是这个问题吗?当你说解决方案不能满足你的需要时,你是什么意思?
    • 我的意思是,我正在寻找的功能是:当您单击其中一个名称时,我希望虚线和相应的数字更改css。例如,当您单击“John Brown”时,我希望第一条虚线变为黑色并变为实线 - 我还希望“#1”变为黑色且边框变为实线。这就是它目前没有做的事情。我认为这与您指出的特异性有关。但我对如何解决它感到困惑。
    • 我认为我在上面的评论中是错误的。 Here's a new jsfiddle 我认为可以满足您的需求。
    • This should do it. jQuery 完全改变了,但我在 CSS 中所做的唯一一件事(在进行了这些特殊性更改之后)就是摆脱了 5px 边框规则。 tr_class 只是一个 JavaScript 变量,因为我不想多次输入那个长字符串。
    猜你喜欢
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    相关资源
    最近更新 更多