Kendo UI ToolTip hide conditionally
by whoamiwho
HTML
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.1.318/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.1.318/styles/kendo.default.min.css">
<script src="http://cdn.kendostatic.com/2014.1.318/js/jquery.min.js"></script>
<script src="http://cdn.kendostatic.com/2014.1.318/js/kendo.all.min.js"></script>
<div style="width: 90%; height: 400px">
<table id="grid" style="width: 100%; heigth: 100%"></table>
</div>
JavaScript
var localData = [];
var someBool = true;
var someText = "sometext";
for (var i = 0, max_i = 5; i < max_i; i += 1) {
if (i > 3) {
someText = "textsome";
}
if (i > 20) {
someBool = "2B";
}
localData.push({
Id: i,
StatusText: someText,
ToolTip: someBool
});
if (i % 3 === 0) {
someBool = null;
someText = null;
} else {
someBool = "or not 2B";
someText = "sometext";
}
}
var dataSource = new kendo.data.DataSource({
data: localData,
schema: {
model: {
fields: {
Id: {
type: "number"
},
StatusText: {
type: "string"
},
ToolTip: {
type: "string"
}
}
}
}
});
var grid = $("#grid").kendoGrid({
dataSource: dataSource,
scrollable: false,
selectable: "cell, multiple",
height: 500,
sortable: {
mode: "multiple"
},
filterable: true,
groupable: true,
columns: [{
field: "Id",
title: "Id",
filterable: false
}, {
field: "StatusText",
title: "String value"
}, {
field: "ToolTip",
title: "Tool tip column",
template: "<span class='tooltip' data-name='#= data.ToolTip #'>#= data.ToolTip #</span>"
}]
}).data("kendoGrid");
// customize the _show method to call options.beforeShow
// to allow preventing the tooltip from being shown..
kendo.ui.Tooltip.fn._show = function (show) {
return function (target) {
if (typeof this.options.beforeShow === "function") {
var e = {
sender: this,
target: target,
preventDefault: function () {
this.isDefaultPrevented = true;
}
}
this.options.beforeShow.call(this, e);
if...