2013-09-05 28 views
0

我有一個包含Navigator控件的XPage。導航器有3個導航項目,每個導航項目都是基本節點。基本節點的onClick事件執行一些客戶端JavaScript。我想在點擊時更改導航項目的背景顏色。我已經嘗試使用JavaScript和dojo來做這件事,但是無法獲得導航項目基本節點的句柄。我可以使用哪些代碼來獲取導航項基本節點,以便我可以使用CSS更改其外觀?有了道場我已經試過XPages - onClick和onMouseOver導航項目

dojo.query(".lotusMenuHeader ul :nth-child(1)") 

我現在有一個感謝Michael Saiz。 我想要做的是在使用客戶端JavaScript單擊它時將「lotusSelected」類添加到導航器項目中(並從其他項目中刪除此類)。我的導航儀剛剛三項所以這裏是我現在用得到這個工作的代碼:

var comp = this; 
var par = comp.parentNode; // li tag 
par.id = "parID"; 
var par2 = par.parentNode; // ul tag 
par2.id = "ul_node;" 
var eigene = par2.childNodes[1]; 
eigene.id = "eigene"; 
var alle = par2.childNodes[3]; 
alle.id = "alle"; 
var abgeschlossen = par2.childNodes[5]; 
abgeschlossen.id = "abgeschlossen"; 

dojo.removeClass("alle","lotusSelected"); 
dojo.removeClass("abgeschlossen","lotusSelected"); 
dojo.addClass("eigene","lotusSelected")  

回答

1

有一個很好的把戲,我發現當在導航器中使用onClick事件 您可以在項目上獲得一個句柄自己使用這個。然後設置一個ID或者做一些直接修改與該項目沒有查詢整個頁面或CSS類:

<xe:basicLeafNode label="Link 1"> 
     <xe:this.onClick><![CDATA[var comp = this; 
    this.id = "item1"; // example 
    window.alert(this.id); 
    //call a function form a script lib. like changeColor(this,color); 
    this.style.backgroundColor = "blue";]]></xe:this.onClick> 
    </xe:basicLeafNode> 

鼠標懸停效應,你可以使用懸停:CSS更改的項目如的顏色: 我用這個在我看來,讓鼠標懸停efekt:

.xspHtmlProdView:hover{background-color:#ffffc8;} 

對於導航項目,我認爲你將需要menuitem:hover {}或類似的東西lotusMenuHeader > li {}

+0

非常感謝。我以前沒有遇到過「這個」,但它非常有用。 –

1

您想尋找.lotusTitleBar ul.lotusTabs div a(在R9/OneUIv3它看起來像.lotusTitleBar2 .lotusNavTabs div a然後用dojo.connect附加的事件給他們。道場連接將觸發與它連接到的元素。所以,你不需要通過索引查找。

讓我們知道如何去

+0

謝謝,我試過,但我只是無法得到它上班。使用dojo會是我的首選解決方案,但最終我使用javascript,如上所述,除了我原來的帖子外。 –