Jquery KendoUI在工具提示中隐藏div,如果<;p>;标签是空的

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

使用KendoUI dataViz库,在我的折线图中显示的工具提示包含一个带有子p标记的div。此p标记的内容是动态的,当p标记为空且数据点悬停时,我运行一个函数,检查段落标记内内容的长度,如果为空,则隐藏整个包含div的部分。我遇到一个问题,div似乎只隐藏了一瞬间,然后在鼠标停留在数据点上时再次显示它自己

编辑:下面是我现在如何使用OnaBai的方法实现工具提示。但它仍然不能正常工作。如果p标记中没有带的字符,则应在第一个块中运行if条件

 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 + "&nbsp;" + a.value + unitName + " <br/>" +
                   a.dataItem.measurementtime + " " + a.dataItem.measurementdate + "<br/>" +
                   "<div class='tooltip-alert'>" +
                   "<p></p>" +
                   "</div>";
        } else {
            return mTypeName + "&nbsp;" + 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 &nbsp; " + a.value + " some variable<br/>" +
                    a.dataItem.measurementtime + " " + a.dataItem.measurementdate + "<br/>" +
                    "<div class='tooltip-alert'>" +
                    "</div>";
        } else {
            return "Unit name &nbsp; " + 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+”

”+ ""; } } },

使用HTML
p

的内容作为逻辑条件问题是在显示模板之前触发了
seriesHover
,因此您实际上没有试图隐藏它。尝试执行
$(“.statType图标”).hide()没有条件,你应该看到它永远不会被隐藏(不管是空的还是不空的
p
)。谢谢!我将很快尝试一下,看看它是如何工作的。在原始帖子中添加了一个编辑,向您展示我现在是如何实现它的。使用您的方法,它仍然无法正常工作,我想这与我的if条件逻辑有关。根据最近编辑的信息,
p
元素的内容是
a.dataItem.alertname
。因此,这应该是一个条件,如果您仍然没有生成
p
的内容,您就不能请求它。在我理解的条件下查看我的答案。