2014-11-22 44 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