gpt4 book ai didi

javascript - 如何将 dojo 工具提示放置在靠近文本的位置?

转载 作者:行者123 更新时间:2023-11-29 16:19:04 26 4
gpt4 key购买 nike

正如标题所说,我希望能够在靠近文本的地方显示工具提示,目前它显示在单元格的远处。

请注意大文本的工具提示位置正确,仅小文本失败。

在 DOJO 中,如何将工具提示放置在靠近文本的位置?

我有这段代码片段可以在网格单元格中显示工具提示。

html

<div class="some_app claro"></div>

.

..



this.createGrid = function () {
var me = this;
var options = me.options;


this.grid = new dojox.grid.EnhancedGrid ({

width: options.width,
height: options.height,
query: { id: "*" },
keepSelection: true,
formatterScope: this,
structure: options.columns,
columnReordering: options.draggable,
rowsPerPage: options.rowsPerPage,

//sortInfo: options.sortInfo,
plugins : {
menus: options.menusObject,
selector: {"row":"multi", "cell": "disabled" },

},


canSort: function(col) {
if (options.columns[Math.abs(col)-1].sortable) return true;
else return false;
},


onStyleRow: function (row) {
var grid = me.grid;
var item = grid.getItem(row.index);

if (item && options.rowClass(item)) {
row.customClasses += " " +options.rowClass(item);
if (grid.selection.selectedIndex == row.index) {
row.customClasses += " dojoxGridRowSelected";
}
grid.focus.styleRow(row);
grid.edit.styleRow(row);
}
},


onCellMouseOver: function (e){
// var pos = dojo.position(this, true);
// alert(pos);
console.log( e.rowIndex +" cell node :"+ e.cellNode.innerHTML);
// var pos = dojo.position(this, true);
console.log( " pos :"+ e.pos);
if (e.cellNode.innerHTML!="") {
dijit.showTooltip(e.cellNode.innerHTML, e.cellNode);
}
},

onCellMouseOut: function (e){
dijit.hideTooltip(e.cellNode);
},

onHeaderCellMouseOver: function (e){
if (e.cellNode.innerHTML!="") {
dijit.showTooltip(e.cellNode.innerHTML, e.cellNode);
}
},

onHeaderCellMouseOut: function (e){
dijit.hideTooltip(e.cellNode);
},

});

// ADDED CODE FOR TOOLTIP
var gridTooltip = new Tooltip({
connectId: "grid1",
selector: "td",
position: ["above"],
getContent: function(matchedNode){
var childNode = matchedNode.childNodes[0];
if(childNode.nodeType == 1 && childNode.className == "user") {
this.position = ["after"];
this.open(childNode);
return false;
}
if(matchedNode.className && matchedNode.className == "user") {
this.position = ["after"];
} else {
this.position = ["above"];
}

return matchedNode.textContent;
}
});
...

最佳答案

工具提示位于单元格周围,即 <td> HTML 中的元素,而不是文本。有两种出路:

一个。使用 formatters将文本包装到元素中并放置 Tooltip到表格单元格的这个子元素。

enter image description here

B.地点Tooltip在单元格上方:

enter image description here

var gridTooltip = new Tooltip({
connectId: "grid1",
selector: "td",
position: ["above"],
getContent: function(matchedNode){
return matchedNode.textContent;
}
});

在 jsFiddle 查看 A 和 B 是如何工作的:http://jsfiddle.net/phusick/7F5Cr/

关于javascript - 如何将 dojo 工具提示放置在靠近文本的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12326307/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com