引导下拉列表仅删除一次
Bootstrap dropdown only drops once
我有以下引导导航栏:
<div class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar">
<div class="navbar-header">
<a class="navbar-brand" href="@Href("~")">Admin</a>
@if (User.Identity.IsAuthenticated)
{
<ul class="nav navbar-nav">
<li class="dropdown" id="accessList">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false" id="accessListTopLink">Backend Options <span class="caret"></span></a>
</li>
</ul>
}
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "ActionSelection", "View")</li>
@if (User.Identity.IsAuthenticated)
{
<li><a class="navbar-brand" href="@Url.Action("LogOut", "User")">Log Out</a></li>
}
</ul>
</div>
</div>
</div>
</div>
然后 html 文件中的这个脚本:
<script type="text/javascript">
$(document).ready(function () {
$('#accessList').one('click', function() {
LoadAccessList('@User.Identity.Name');
});
$('.accessList').on('click', function () {
alert('Hi');
});
});
</script>
LoadAccessList js 函数是:
function LoadAccessList(email) {
var dropDownControl = $('#accessList');
var topLinkControl = $('#accessListTopLink');
// Load the available access list options from the service
$.ajax({
type: "GET",
data: {
email: email
},
url: '../User/LoadAccessList',
success: function(resultsList) {
var htmlToAdd = '<ul class="dropdown-menu" role="menu">';
// Loop through and add all actions in.
$.each($.parseJSON(resultsList), function(index, accessOption) {
var serviceName = accessOption.Name;
var url = accessOption.Url;
htmlToAdd = htmlToAdd + '<li class="accessList"><a onclick="alert(''Hi'')" href="' + url + '">' + serviceName + '</a></li>';
});
htmlToAdd = htmlToAdd + '</ul>';
topLinkControl.after(htmlToAdd);
dropDownControl.dropdown();
},
error: function(errorData) {
// Error code passed back here.
bootbox.alert('Error loading access list. Result was: <b>' + errorData.statusText + '</b>');
}
});
}
此 ajax 调用基本上加载将添加到列表中以导航到各种站点的名称和 url 列表。
我有 2 个问题:
当我运行页面并单击"后端选项"时,它会显示下拉列表,但是如果我尝试单击任何链接,我会收到警报("Hi"),但它不会导航到 href 中的链接。
其次,在初始单击下拉列表然后单击后,它不再响应另一次单击,因此您无法再次看到下拉列表。
任何帮助将不胜感激,因为这让我发疯!
编辑:
这是代表我问题的 jsfiddle 链接。
答案是更改以下行:
dropDownControl.dropdown();
对此:
dropDownControl.show();
相关文章:
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- Javascript匹配以从URL中删除部分文件名-替换最后一次出现的内容
- Angular指令删除只调用一次的DOM元素
- "搜索并销毁“;迭代不会'不要一次删除所有项目
- 一次高亮显示一个城市,并在悬停其他城市时删除颜色填充
- 引导下拉列表仅删除一次
- 删除/隐藏链接后最后一次出现的字符串
- 无法在一次运行中删除多个数组元素
- 当指定为仅删除一次时,拼接会从数组中删除多个项目
- 如何删除浏览器在一次请求期间添加的所有 Cookie
- 如何一次删除一个类元素
- 删除孩子只工作一次
- 删除javascript中最后一次出现的字符串
- 单击时将html存储到变量中,从DOM中删除,然后在另一次单击时将其放回
- 使用JQuery'加载HTML;s在一次又一次地删除HTML后多次执行getScript
- 在一次使用后删除Javascript模块中的公共方法
- 在浏览器中只显示PDF一次,然后将其从C#服务器中删除
- 是否有一种方法可以在web浏览器中一次删除所有事件侦听器
- 是否有一种方法可以在一次删除localStorage的整个内容
- 使用JQuery一次删除一个项