Kendo ui 将内容字段设置为div元素时。。在连接和可见性方面有问题
问题:我正在为剑道工具提示的内容属性指定一个div。。。问题是,当我附加工具提示时。。。div就在那里,直到我将鼠标悬停在我附加到的元素上,工具提示才真正连接起来。。。你可以在我下面的代码中看到这是如何不起作用的。。。粘贴到剑道道场,然后看。。。。只需单击按钮(不要将鼠标悬停在文本框上)。。然后你会看到div出现,当你将鼠标悬停在文本框上时,它会做它应该做的事情。。。我做了一个变通办法,被注释掉了。。。但它闪烁了一秒钟。。。有没有一种方法可以让工具提示连接起来并隐藏content divKendo ui 将内容字段设置为div元素时。。在连接和可见性方面有问题,kendo-ui,kendo-tooltip,Kendo Ui,Kendo Tooltip,问题:我正在为剑道工具提示的内容属性指定一个div。。。问题是,当我附加工具提示时。。。div就在那里,直到我将鼠标悬停在我附加到的元素上,工具提示才真正连接起来。。。你可以在我下面的代码中看到这是如何不起作用的。。。粘贴到剑道道场,然后看。。。。只需单击按钮(不要将鼠标悬停在文本框上)。。然后你会看到div出现,当你将鼠标悬停在文本框上时,它会做它应该做的事情。。。我做了一个变通办法,被注释掉了。。。但它闪烁了一秒钟。。。有没有一种方法可以让工具提示连接起来并隐藏content div <
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2017.1.223/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2017.1.223/styles/kendo.rtl.min.css">
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2017.1.223/styles/kendo.default.min.css">
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2017.1.223/styles/kendo.mobile.all.min.css">
<script src="http://code.jquery.com/jquery-1.12.3.min.js"></script>
<script src="http://kendo.cdn.telerik.com/2017.1.223/js/angular.min.js"></script>
<script src="http://kendo.cdn.telerik.com/2017.1.223/js/jszip.min.js"></script>
<script src="http://kendo.cdn.telerik.com/2017.1.223/js/kendo.all.min.js"></script>
</head>
<body>
<div id="view" data-bind="enabled: isNameEnabled">
<button id="button1" data-bind="click: updateTooltip">Change Tooltip</button>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<input id="text1" type="text" data-bind="value: name" />
<div id="toolTipDiv"></div>
</div>
<script>
var viewModel = kendo.observable({
isNameEnabled: false,
name: "John Doe",
updateTooltip: function () {
var kendoToolTip = window.toolTipEl.data("kendoTooltip");
// comment this out to see
//div1.hide();
//kendoToolTip.show();
//kendoToolTip.hide();
//div1.show();
//end comment
div1.text(text1.value);
}
});
var div1 = $("#toolTipDiv");
window.toolTipEl = $("#text1");
kendo.bind($("#view"), viewModel);
window.toolTipEl.kendoTooltip({
content: div1, position: "top",autohide:true
});
</script></body>
</html>
更改工具提示
var viewModel=kendo.observable({
isNameEnabled:false,
姓名:“约翰·多伊”,
UPDATETOLTIP:函数(){
var kendoToolTip=window.toolTipEl.data(“kendoToolTip”);
//请对此进行评论以查看
//div1.hide();
//kendoToolTip.show();
//kendoToolTip.hide();
//div1.show();
//结束语
div1.text(text1.value);
}
});
var div1=$(“#工具提示div”);
window.toolTipEl=$(“#text1”);
bind($(“#视图”),viewModel);
window.toolTipEl.kendoTooltip({
内容:div1,位置:“top”,自动隐藏:true
});
显示div是因为它是可见的,而您只是将其内容设置为非空。一旦工具提示显示一次,剑道将接管控制权,并将其包装在另一个div中,根据需要隐藏和显示。
请注意,“aria hidden:true”实际上并没有隐藏div…它只是一个屏幕阅读器的指令…您仍然必须实际使用真正的CSS来隐藏div
您需要确保div最初是隐藏的(在剑道包裹它之前),并移除显示:none;一旦你把它交给剑道
或者…隐藏div并将内容设置为只返回div内容而不绑定到div本身的函数,即
<div id="toolTipDiv" aria-hidden="true" style="display: none"></div>
...
updateTooltip: function () {
div1.text(text1.value);
}
...
window.toolTipEl.kendoTooltip({
content: function(e) {
return div1.text();
},
...
UPDATETOLTIP:函数(){
div1.text(text1.value);
}
...
window.toolTipEl.kendoTooltip({
内容:职能(e){
返回div1.text();
},
例如:
更新
事实证明,只在第一次显示元素的提示时调用内容,而不是每次显示工具提示时调用内容,因此对内容(甚至输入的标题属性)的动态更改不会更改工具提示
所以,忽略我的答案,试试这个:那“aria hidden:true”是一些测试,我已经删除了它…我使用了刷新,没关系..把文本放在剑道中,然后试试:)在提出建议之前,确保你的建议有效,我找不到解决方法。你的意思是像这个工作示例一样:?我的原始建议解决了你问题中所述的问题。我的更新(如果你正确使用它,它会起作用)只是为了实现真正的动态工具提示,而不是问题中指定的一次性更改。