使用razor构建一个弹出式工具提示菜单
Using razor to build a popup tooltip menu
我在动态生成这个下拉菜单时遇到了问题。如果我不是动态创建它,它就会工作。
@t.Id
在工作,并且每次在循环中都不同。我很确定是第一行错了,因为我以前用过id=""
。
<b><a href="#" onmouseover="tooltip.pop(this, '#tagsdiv@(t.Id)')">tagged</a></b>
<div style="display: none;">
<div id="tagsdiv@(t.Id)">
<span class="menu">hhhh<br />
nnnn
@for( int i = 0; i < t.tTags.Count; i++ ) {
<b>@Html.ActionLink( t.tTags[i], "TagDetail", "Forums", new { tag = t.tTags[i], page = 0 }, null )</b>
}
</span>
</div>
</div>
更有效地调试Razor(或任何服务器端代码呈现标记)的技巧:
- 查看渲染的HTML!对吗?
- 删除样式/脚本,直到你确定服务器正在呈现你想要的值。 添加一个断点到你的控制器,以确保你正在传递数据给视图。你的渲染逻辑可能没问题。
也就是说,你的代码看起来工作得很好。我隐藏了一些数据:
@{ var t = new { Id = 1234, tTags = new List<string> { "foo", "bar", "baz" } }; }
<b><a href="#" onmouseover="tooltip.pop(this, '#tagsdiv@(t.Id)')">tagged</a></b>
<div style="display: none;">
<div id="tagsdiv@(t.Id)">
<span class="menu">
@for( int i = 0; i < t.tTags.Count; i++ ) {
<b>@Html.ActionLink( t.tTags[i], "TagDetail", "Forums", new { tag = t.tTags[i], page = 0 }, null )</b>
}
</span>
</div>
</div>
这个收益率:
<b><a href="#" onmouseover="tooltip.pop(this, '#tagsdiv1234')">tagged</a></b>
<div style="display:none;">
<div id="tagsdiv1234">
<span class="menu">
<b><a href="">foo</a></b>
<b><a href="">bar</a></b>
<b><a href="">baz</a></b>
</span>
</div>
</div>
这里有一件事看起来真的不对,那就是'#tagsdiv1234'
。你确定你的工具提示需要一个ID ,包括 CSS/jQuery ID选择器("#")吗?
另一件突出的事情是您的工具提示容器是用设置为display:none
的外部div
包装的。ID元素总是被隐藏的,因为它的父元素是隐藏的,即使工具提示代码试图显示它。
另一种可能是你的ID包含了元素标识符中非法的字符
相关文章:
- 当满足PHP条件时显示一个弹出窗口
- 在元素悬停上显示带有javascript的弹出式网站
- 在屏幕中间打开一个弹出窗口
- Chrome扩展弹出式安装
- 有没有一种方法可以检测何时触发了溢出-y:auto,并因此创建一个弹出窗口
- 如何使用javascript/css创建一个弹出屏幕的表单
- 普通(弹出式)Chrome 扩展程序与在开发者工具中添加标签页的扩展程序之间的区别
- 仅加载弹出式javascript
- 从弹出式警报中启用了一个禁用按钮
- 两个相同的弹出式插件不工作在一个页面上
- 如何制作一个不使用ajax的弹出式聊天应用程序
- 创建一个可以在许多网站上访问的HTML弹出式表单
- JS警报从一个弹出式扩展在谷歌浏览器
- 我如何通过变量从一个表单到javascript弹出式表单
- 如何创建一个由单独Javascript生成的数据填充的弹出式html
- 使一个弹出式(非模态)浏览器窗口即使在不活动时也保持可见
- 如何创建一个上下文菜单在dojo .or如何创建一个弹出式菜单,当我们右键单击浏览器与dojo dijit的帮助
- 使用razor构建一个弹出式工具提示菜单
- 如何获得记录从表的内容作为一个数据的弹出式表单和显示
- 如果我点击一个按钮来打开一个弹出式表单,代码就不能在IE6上工作