经过大量测试后,我发现由于kendo ui菜单组件中出现了一个错误,我的菜单不再有效。这曾经有用,而且不再有用。由于我们还处于项目的早期阶段,我们并没有使用导航,所以我不知道它什么时候停止工作。
我创造了一个非常简单的小提琴来演示这个问题。基本上有两个导航相邻,一个工作,另一个不工作。唯一的区别是,无效的那个有openOnClick:true和closeOnClick:false。
注意:我必须将其设置为在小提琴的新窗口中打开链接,因为jsfiddle不会让google加载到iframe中,因此允许弹出窗口。
小提琴:http://jsfiddle.net/codeowl/HLaRx/4/
HTML:
<div style="padding:20px">
<table style="width:500px">
<tr>
<td>Nav 1 Active Links DON'T Work:</td>
<td>Nav 2 Active Links DO Work</td>
</tr>
<tr>
<td><ul id="nav1" /></td>
<td><ul id="nav2" /></td>
</tr>
</table>
</div>
JavaScript的:
$(document).ready(function() {
var oNav1 = null,
oNav2 = null,
oNavData = [{
"text": "Administration",
"encoded": true,
"content": "<div class=\"ma-hpm-dropPanel\"><table><tr><td><div class=\"ma-hpm-cellPadding\"><span class=\"ma-hpm-menuPanelGroupHeader\">Application Administration</span><ul><li><span class='ma-hpm-dissabledPanelLink'>Dissabled Link</span></li><li><a target='_blank' class='ma-hpm-panelLink' href='http://www.google.com.au'>Active Link</a></li></ul></div></td></tr></table></div>"
}];
oNav2 = $('#nav1').kendoMenu({
openOnClick: true,
closeOnClick: false
}).data('kendoMenu');
oNav1 = $('#nav2').kendoMenu().data('kendoMenu');
oNav1.append(oNavData);
oNav2.append(oNavData);
});
请帮我解决此问题。
以下是我要创建的导航面板的示例:
此致
斯科特
答案 0 :(得分:0)
不确定它什么时候停止工作但我会说目前的行为是可以理解的(尽管可能不是你想要的)。
菜单期望你里面的东西是菜单选项,而不是完整的HTML。因此,当您将openOnClick
设置为true
(与鼠标悬停的默认设置相反)时,Kendo UI必须拦截该菜单上任何HTML元素上的click
事件。因此,您必须按预期打开URL。
所以,我的问题,为什么你需要像你一样定义它?可能会有这样的事情吗?:
<ul id="nav1">
<li>
Administration
<ul>
<div>
<span class="ma-hpm-menuPanelGroupHeader">Application Administration</span>
</div>
<li disabled="disabled">Disabled Link</li>
<li><a target='_blank' class='ma-hpm-panelLink' href='http://www.google.com.au'>Active Link</a></li>
</ul>
</li>
</ul>
答案 1 :(得分:0)
这是一个错误 - 和here is the fix。