2014-11-22 42 views
-2

我已经Google搜索了这个网站,但没有运气。我只想要一个简单明了的答案。在变量中存储.css()方法

这里是我的HTML:

<div id="main-navigation"> 
    <ul> 
     <li> 
      <a href="#">home</a> 
     </li> 
    </ul> 
</div> 

这里是CSS方法我用我已经测试和工程:

// Layout 1 
$('#default').click(function() { 
    if('true' == 'true') { 
     // General Values 
     $(hmnavUL).css({ backgroundColor: bgDefault }); 
}); 

这里是我的变量已创建:

var bgSet = $(hmnavUL).css({ backgroundColor: bgDefault }); 

这里是我想要实现:

// Layout 1 
$('#default').click(function() { 
    if('true' == 'true') { 
     // General Values 
     bgSet 
}); 

结果:

浏览器中完全忽略了我的“bgSet”可变的,但是当我穿上它承认风格”不要使用变量。它不会给我任何错误,我的首选版本。任何你可以告诉我关于我的语法的东西将不胜感激。我假设这是我的语法。

我已经链接了一个照片示例来演示我期望的最终产品(注意:我现在还不能附加图像)。

(默认布局,第二布局,删除所有样式)

期望的结果:Result

+0

'bgSet'是一个jQuery对象,因为您在声明'bgSet'时使用'.css()'作为设置器。你期待它成为什么? – charlietfl 2014-11-22 01:35:50

+0

您的评论并不真正有用,但谢谢。 – 2014-11-22 01:50:26

回答

0

它看起来像你想切换和基于click事件处理元素的CSS属性。你有正确的想法,但你的JavaScript稍微偏离。下面是应该执行你想要的功能的例子:

// Function to change the css of an element 
 
function makeRed(elem){ 
 
    elem.css({ "background-color" : "red" }); 
 
}; 
 

 
// Attach an event handler.. 
 
$("#clickMe").click(function(){ 
 

 
    // Store the object as a variable 
 
    var obj = $("#foo"); // <-- The element you want to change the bg of 
 
    
 
    // Run your function. 
 
    makeRed(obj); 
 
    
 
});
#foo{ 
 
    width: 50px; 
 
    height: 50px; 
 
    background-color: blue; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script> 
 
<div id="foo"></div><br /> 
 
<button id="clickMe">Click Me!</button>

这实际上是关于学习的选择,函数和变量是如何JavaScript的工作。虽然你的问题的措辞在排序的钝为StackOverflow的方式,我很欣赏你发布你的代码,并且你正在尝试学习。 :)

+0

我刚刚读了你最后的评论。我并不是故意隐瞒。我是JS新手,想确保我清楚自己想要什么。我几乎从来没有在这个网站上找到有用的答案,因为你的词汇超出了我的大声笑。 – 2014-11-22 01:59:36

+0

钝了肯定比预期更严厉 - 抱歉:)。我认为自从你发布你的代码后,你不应该得到“downvoted”,并且(IMO)表明你是js的新手,试图学习和使用一个实际的例子来解决问题,而不是通过教程阅读。对于与js相关的问题,一个好的经验法则是:邮政编码可以在沙盒(或SO片段)中快速重新运行,例如http://jsfiddle.net/。最好。 – wahwahwah 2014-11-22 02:33:26

2

的变量不包含你希望它做什么。代码不保存在变量中,它会立即执行,并且方法(这是jQuery对象)的返回值存储在变量中。

您不能在变量中放入“宏”,并通过引用该变量来执行它。最接近的事到你正在尝试做的是把代码中的函数,因此,它可以在以后执行:

var bgSet = function() { 
    $(hmnavUL).css({ backgroundColor: bgDefault }); 
}); 

// Layout 1 
$('#default').click(function() { 
    if('true' == 'true') { 
    // General Values 
    bgSet(); 
    } 
}); 
+0

非常感谢你的工作,非常感谢你。 – 2014-11-22 01:50:02