将 .css() 方法存储在变量中

Storing .css() method in a variable

本文关键字:变量 存储 方法 css      更新时间:2023-09-26

我已经用谷歌搜索了我的脸,但没有运气,包括搜索这个网站。我只想要一个简单明确的答案。

这是我的 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"变量,但是当我不使用变量时,它会确认样式。我的首选版本也没有给我任何错误。你能告诉我任何关于我的语法的事情将不胜感激。我假设这是我的语法。

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

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

期望的结果:结果

变量不包含您希望它执行的操作。代码不会保存在变量中,而是立即执行,并且来自 css 方法(即 jQuery 对象)的返回值存储在变量中。

您不能将"宏"放入变量中并通过引用变量来执行它。最接近您尝试做的事情是将代码放在函数中,以便以后可以执行:

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

看起来你想根据 eventHandler 切换和元素的 css 属性click。你有正确的想法,但你的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来说是一种迟钝的方式,但我很欣赏你发布了你的代码,并且你正在努力学习。:)