使用带有ONE click事件的jQuery为CSS中的多个不同ID提供不同的属性

时间:2012-11-14 19:44:09

标签: jquery css click

我看起来又高又低。有一个答案可以单击更改CSS元素中的单个属性,或者在单个CSS元素中更改多个属性,或者使用单个更改更改类 - 但所有这些都是线性的。

我正在尝试进行ONE CLICK事件,例如,我点击我设置的按钮(或链接等)。我们称之为#myClickButton。然后,此按钮应将两个单独的id的css属性更改为两个不同的值。我们将这些ID称为#myCssChange1和#myCssChange2。

我点击#myClickButton。 那么#myCssChange1来自display:block; - > display:none; 同时#myCssChange2来自display:none; - >显示:[novaluehere];

这些必须同时发生(或者尽可能接近计算机必须采取的逐步操作来执行代码)。

我确信这非常简单......我只是想找到它的jquery(不是CSS或HTML)

我的代码到目前为止(是的,我意识到它是不正确的 - 它不起作用,但它隐藏了第一个CSS,因此它的一部分功能):

    $(document).ready(function()
      {
        $("#myClickButton").click(function()
          {
            $("#myCssChange1").css('display', 'none');
            $("#myCssChange2").css('display', '');
          }
        );
      }
    );

3 个答案:

答案 0 :(得分:1)

关闭,您需要指定''以外的其他内容才能将显示更改为。

$(document).ready(function(){
    $("#myClickButton").click(function(){
        $("#myCssChange1").css('display', 'none');
        $("#myCssChange2").css('display', 'block'); // or inline, etc
    });
});

答案 1 :(得分:1)

您的代码实际上是有效的(假设您尝试丢弃设置的显示值,如无)。这是running as a JSFiddle。我猜你要么不加载JQuery,要么你的ID与你上面描述的不同,如果它不适合你。

此外,如果你只是显示和隐藏元素,jQuery有方法。它们非常有用show()hide()

答案 2 :(得分:0)

首先 - 谢谢大家的回复。知道我的代码(大部分)功能是一个很大的帮助(因为我在教自己,我经常让自己疯狂)。外部资源同样是一个很大的帮助。

我不知道我无法向CSS返回无值。学过的知识。但是,为了增加一些清晰度,这个特殊问题是最初可见的第一个对象(#myCssChange1)是一个带有文本块的div。最初隐藏的第二个对象(#myCssChange2)是一个包含内部表的div。无论出于何种原因,对于#myCssChange2表,将“display”设置为除“none”之外的任何内容,会导致压缩的DIV关闭到拒绝展开以显示该表的一侧(基本上是一个没有任何内容的封闭栏)。

由于提到了.hide()和.show()建议,我偶然发现了另一个选项,那就是在CSS中使用“visibility”而不是显示。这解决了我对生成的HTML输出所遇到的问题。

所以我用过:

    $(document).ready(function()
      {$("#myClickButton").click(function()
          {$("#myCssChange1").css('visibility', 'hidden');
           $("#myCssChange2").css('visibility', 'visible');
          });
      });

这似乎更宽容一些,虽然不如显示器那么灵活,它很好地处理了扭结。

非常感谢大家,在没有你所有投入的情况下,我已经至少待了一周。