Jquery KendoUI在工具提示中隐藏div,如果<;p>;标签是空的
使用KendoUI dataViz库,在我的折线图中显示的工具提示包含一个带有子p标记的div。此p标记的内容是动态的,当p标记为空且数据点悬停时,我运行一个函数,检查段落标记内内容的长度,如果为空,则隐藏整个包含div的部分。我遇到一个问题,div似乎只隐藏了一瞬间,然后在鼠标停留在数据点上时再次显示它自己 编辑:下面是我现在如何使用OnaBai的方法实现工具提示。但它仍然不能正常工作。如果p标记中没有带的字符,则应在第一个块中运行if条件Jquery KendoUI在工具提示中隐藏div,如果<;p>;标签是空的,jquery,kendo-ui,kendo-dataviz,Jquery,Kendo Ui,Kendo Dataviz,使用KendoUI dataViz库,在我的折线图中显示的工具提示包含一个带有子p标记的div。此p标记的内容是动态的,当p标记为空且数据点悬停时,我运行一个函数,检查段落标记内内容的长度,如果为空,则隐藏整个包含div的部分。我遇到一个问题,div似乎只隐藏了一瞬间,然后在鼠标停留在数据点上时再次显示它自己 编辑:下面是我现在如何使用OnaBai的方法实现工具提示。但它仍然不能正常工作。如果p标记中没有带的字符,则应在第一个块中运行if条件 tooltip: { visible: t
tooltip: {
visible: true,
border: {
width: 1
},
font: "10px MS Trebuchet, Arial, sans-serif",
template: function (a) {
if (!$(".tooltip-alert p").text().trim().length) {
return mTypeName + " " + a.value + unitName + " <br/>" +
a.dataItem.measurementtime + " " + a.dataItem.measurementdate + "<br/>" +
"<div class='tooltip-alert'>" +
"<p></p>" +
"</div>";
} else {
return mTypeName + " " + a.value + unitName + " <br/>" +
a.dataItem.measurementtime + " " + a.dataItem.measurementdate + "<br/>" +
"<div class='tooltip-alert'>" +
"<div class='statType-icon alertIcon-" + a.dataItem.alertid + "'></div>" +
"<p>" + a.dataItem.alertname + "</p>" +
"</div>";
}
}
},
工具提示:{
可见:对,
边界:{
宽度:1
},
字体:“10px MS投石机,Arial,无衬线”,
模板:功能(a){
如果(!$(“.tooltip alert p”).text().trim().length){
返回mTypeName+“”+a.value+unitName+”
+
a、 dataItem.measurementtime+“”+a.dataItem.measurementdate+“
”+
"" +
“”+
"";
}否则{
返回mTypeName+“”+a.value+unitName+”
+
a、 dataItem.measurementtime+“”+a.dataItem.measurementdate+“
”+
"" +
"" +
“”+a.dataItem.alertname+””+
"";
}
}
},
不要试图隐藏它,而是将工具提示定义为应用逻辑的函数。例如:
tooltip: {
visible: true,
font: "10px MS Trebuchet, Arial, sans-serif",
template: function(a) {
if (!a.dataItem.alertname) {
return "Unit name " + a.value + " some variable<br/>" +
a.dataItem.measurementtime + " " + a.dataItem.measurementdate + "<br/>" +
"<div class='tooltip-alert'>" +
"</div>";
} else {
return "Unit name " + a.value + " some variable<br/>" +
a.dataItem.measurementtime + " " + a.dataItem.measurementdate + "<br/>" +
"<div class='tooltip-alert'>" +
"<div class='statType-icon alertIcon-" + a.dataItem.alertid +"'>BG img</div>" +
"<p>" + a.dataItem.alertname + "</p>" +
"</div>";
}
}
},
工具提示:{
可见:对,
字体:“10px MS投石机,Arial,无衬线”,
模板:功能(a){
如果(!a.dataItem.alertname){
返回“单位名称”+a.value+“某个变量
”+
a、 dataItem.measurementtime+“”+a.dataItem.measurementdate+“
”+
"" +
"";
}否则{
返回“单位名称”+a.value+“某个变量
”+
a、 dataItem.measurementtime+“”+a.dataItem.measurementdate+“
”+
"" +
“BG img”+
“”+a.dataItem.alertname+””+
"";
}
}
},
使用HTMLp
的内容作为逻辑条件问题是在显示模板之前触发了seriesHover
,因此您实际上没有试图隐藏它。尝试执行$(“.statType图标”).hide()代码>没有条件,你应该看到它永远不会被隐藏(不管是空的还是不空的p
)。谢谢!我将很快尝试一下,看看它是如何工作的。在原始帖子中添加了一个编辑,向您展示我现在是如何实现它的。使用您的方法,它仍然无法正常工作,我想这与我的if条件逻辑有关。根据最近编辑的信息,p
元素的内容是a.dataItem.alertname
。因此,这应该是一个条件,如果您仍然没有生成p
的内容,您就不能请求它。在我理解的条件下查看我的答案。