仅设置jQuery CSS变量

时间:2015-07-17 15:38:00

标签: jquery var stoppropagation

这在某种程度上解决了我的问题,但并非完全解决了这个问题:

Optimizing code to define variables only once, code only works when the vars are in change function and for the code outside change I redefine?

这是一个非常基本的要求 - 我希望在动态加载元素时获得类的文本颜色。没问题:

var follColor = $('div.followup').css("color");

当满足某个条件时,我想更新任何具有该颜色的类,它引用我正在处理的应用程序的状态:

$('.anyclass').attr('style', 'color:'+follColor+'');

问题在于可以并且确实会发生各种情况,这些条件会在页面加载后动态地改变文本的颜色 - 我永远不知道哪个。我只想获得初始状态,该状态最初可由用户设置,并且在没有follColor变量重置的情况下使其适用。

最简单的解决方案是以某种方式防止var在第一次之后被更新。正如所建议的那样,实际上没有任何事件可以将其绑定到例如停止传播/重置的事件。我很难过,真的可以在这里使用一些帮助。提前谢谢。

2 个答案:

答案 0 :(得分:1)

如果我理解你的问题,请试试这个。你想要的是,如果follColor有一个它不应该改变的值,那么不要简单地设置它,试试这个:

var follColor;
if(follColor == null){
  follColor = $('div.followup').css("color");
}

希望这有帮助。

答案 1 :(得分:0)

cbender的回复让我朝着正确的方向前进,但令人担忧的答案要求我将设置包装在$(document).ready函数中以防止事件传播。这是有效的:

      $(document).ready(function(e) {
          var follColor;
          if(follColor === undefined){
            follColor = $('div.followup').css("color");
          } else {
            e.stopPropagation;
          }
      });