2013-03-15 68 views
2

我正在使用jquery.treeview.js。 我需要在加載頁面時突出顯示節點背景顏色。 在點擊我能夠突出背景顏色和字體等使用jquery高亮頁面加載jquerytreeview中的默認節點

$("a").css("backgroundColor", ""); 
    $("a").css("font-weight", ""); 
    $(this).css("backgroundColor", "grey"); 
    $(this).css("font-weight", "bold"); 
    $.cookie("url", $(this)); 

現在我堅持一個cookie該對象和我能夠讀取相同的,但不能因爲說有應用CSS沒有這樣的財產。

$.cookie("url").css("backgroundColor", "grey"); 

爲什麼我沒有從cookie中獲取jQuery對象?

+0

警報(this.id)返回空 警報($(本).ID)返回undefined – 2013-03-15 13:58:17

回答

1

如果您正在使用this插件嘗試設置$.cookie.json = true;

$.cookie.json = true; 
... 
$.cookie("url", $(this)); 
... 
$.cookie("url").css("backgroundColor", "grey"); 

如果這不起作用,你可以讀到用JavaScript here對象去/序列化。如果你確實需要對象序列化,請小心,如果你在序列化之前和之後不需要確切的對象,那麼dgvid的答案是一個更好的方法。只有當你用新變量/函數/偵聽器/ ...擴展對象時纔是這種情況。

+0

我甚至不知道克勞斯·哈特爾的插件能做到這一點。偉大的提示! – dgvid 2013-03-15 13:13:06

+0

我沒有測試這種方法,但我添加了一個鏈接到JavaScript對象的序列化。如果我的方法不起作用,鏈接裏面的那個會做:) – Eich 2013-03-15 13:16:28

+0

對象我能夠得到,但它包含節點 2013-03-15 14:19:37

1

你的代碼不工作,因爲cookie包含字符串,沒有別的。你的節點(技術上是一個jQuery對象的實例)不是一個字符串。文章Serializing Javascript Objects into Cookies有一個很好的概述如何做你想做的。

但是,對於您的特定需求,您可能可以更簡單地完成該文章中描述的內容。如果您確定地知道要突出顯示的節點將爲總是有一個非空ID,您可以將該ID已經是一個字符串保存在cookie中。當你從cookie返回id時,你可以用它作爲選擇器來獲取你想要的對象。例如:

// Works only if `this` has id attribute set: 
$.cookie("url", this.id); 


// Later... 
var id = $.cookie("url"); 
$("#" + id).css("backgroundColor", "grey"); 
+0

alert(this.id)return empty – 2013-03-15 13:57:28

+0

我想你會想嘗試da_re的方法,那麼。 – dgvid 2013-03-15 14:01:19