我认为, “箭” 你的意思是标注。您可以通过关闭标注:
$(document).ready(function() {
$("#target").kendoTooltip({
callout: false
});
});
关于你的问题“此外,我怎么能触发提示只有当网格单元格中的文字部分是可见的?”
如果我的理解正确,您希望仅在存在带省略号的文本(单元格中部分可见)时才显示工具提示,但如果有全文显示,或者如果您不想显示工具提示单元格中没有文本。如果是这样的话,你可以这样说:
function initializeTooltip(element, filter) {
return element.kendoTooltip({
autoHide: true,
filter: filter,
callout: false,
content: function (e) {
var target = e.target,
tooltip = e.sender,
tooltipText = "";
if (isEllipsisActive(target[0])) {
tooltipText = $(target).text();
}
tooltip.popup.unbind("open");
tooltip.popup.bind("open", function (arg) {
tooltip.refreshTooltip = false;
if (!isEllipsisActive(target[0])) {
arg.preventDefault();
} else if (tooltipText !== $(target).text()) {
tooltip.refreshTooltip = true;
}
});
return tooltipText;
},
show: function() {
if (this.refreshTooltip) {
this.refresh();
}
}
}).data("kendoTooltip");
};
// determanes if text has ellipsis
function isEllipsisActive(e) {
return e.offsetWidth < e.scrollWidth;
}
$(function() {
initializeTooltip($("#yourGridId"), ".tooltip");
});
提示在这种情况下,你想用的工具提示栏的类名,但你可以反正你想调用的类。如果您使用的是Kendo ASP.NET MVC,它会看起来像这样
c.Bound(p => p.ClientName)
.Title("Client")
.HtmlAttributes(new {@class = "tooltip"});
真棒的答案。 qq:你正在确定是否使用offsetwidth与scrollWidth显示...,css究竟是如何确定是否显示省略号?只是好奇。谢谢!要清楚,我使用溢出:隐藏;和文本溢出:省略号;在我的网格中显示我的省略号 – snuggles
另外,我对使用'refreshTooltip'做的事情有点不清楚。如果我遵循逻辑,首先将tooltipText设置为'',然后将其设置为您正在盘旋的单元格的文本(如果存在)。但是,然后你检查它是否被设置为“',如果是,你刷新工具提示?这种检查的目的是什么,如果我是密集的,抱歉,但我剥去了所有这一切,似乎工作正常,但也许我错过了一些东西。 非常感谢! – snuggles
@snuggles。说实话,我不知道CSS是如何决定是否显示省略号,但是我发现如何确定是否存在省略号,并且它始终工作得很好:) –