javascript - XPage - 用于导航项目的 onClick 和 onMouseOver

标签 javascript dojo xpages xpages-extlib ibm-oneui

我有一个包含导航器控件的 XPage。导航器有3个导航项,每个导航项都是一个基本节点。基本节点的 onClick 事件执行一些客户端 JavaScript。我想在单击导航项时更改其背景颜色。我尝试使用 javascript 和 dojo 执行此操作,但无法获取导航项基本节点的句柄。我可以使用什么代码来获取导航项基本节点,以便我可以使用 CSS 更改其外观?我已经尝试过使用Dojo

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")      

最佳答案

我在处理导航器中的 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>

对于MouseOver效果,您可以使用hover: css来更改项目的颜色,例如: 我用它来在我的 View 中获得 MouseOver 效果:

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

对于导航项,我认为您需要 menuitem:hover {} 或类似 lotusMenuHeader > li {}

关于javascript - XPage - 用于导航项目的 onClick 和 onMouseOver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18639972/

相关文章:

javascript - 删除 1 行后刷新以重复控件无法正常工作

xpages View 面板列多值分隔符

javascript - 使用 Ajax 提交表单并将数据插入 MySQL 不起作用

Dojo:如何从值中删除逗号

javascript - 单页 JavaScript Web 应用程序的架构?

css - 在 Internet Explorer 中使用样式的 Dojo TabContainer

javascript - 如何在 dojo.grid.DataGrid 中创建具有不同小部件的列?

java - xPage ManagedBean ODA 应用程序错误

javascript - 如何从angularjs中的json文件获取表数据

javascript - Node.js 中非字符串后的字符串未格式化