我有一个Std开箱即用的布局和部分菜单的部分视图。 当我点击Anchor元素登录时(想法是在一个jquery模式对话框中显示Login,在nav元素之外的div中),jquery函数甚至不会触发。 感谢。
<div class="table-responsive" style="z-index:999">
<nav class="navbar-inverse2" style="text-align:start">
<a href="javascript:void(0)" class="btnLoginYYY">LoginY</a>
<div class="container-fluid">
<ul class="nav navbar-inverse2 navbar-right">
@if (Session["LoginCredentials"] != null)
{
<li>@Html.ActionLink("Logout", "LogOff", "Account", new { }, new { @Style = "color:Gainsboro" })</li>
}
else
{
<li>
<a href="#" class="btnLoginxxx" onclick="LoadDetailPartialView">Login</a>
</li>
}
</ul>
</div>
@section Scripts{
<script src="https://code.jquery.com/ui/1.12.0-rc.2/jquery-ui.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script type="text/javascript">
$(document).on("click", "#btnLoginYYY", function ()
{
alert("here:");
});
$(document).on("click", "#btnLoginYYY", function ()
{
alert("here2:");
});
$(document).ready(function ()
{
$(function ()
{
$("#btnLoginxxx").click(function ()
{
alert("click");
});
$(document).on("click", "#btnLoginxxx", function ()
{
alert("here:");
});
});
});
</script>
}
</nav>
</div>
<div id="dialog2" title="Login View" style="overflow: hidden;"></div>
答案 0 :(得分:1)
您处理点击“登录”按钮的代码无效,因为您没有ID为btnLoginxxx
的按钮。但是,您已经拥有 class buttonLoginxxx
。
如果您只有一个登录按钮(您可能应该这样做),那么最明智的改变就是将元素更改为具有ID:
<a href="#" id="btnLoginxxx"
然后jQuery将起作用。
N.B。只是为了获取信息,要匹配现有的课程,您需要使用.btnLoginxxx
作为选择器。我不知道这只是一个错字,或者你不理解ID和一个类以及代表它们的选择器之间的区别。如果你没有,现在是学习的好时机:#someName
通过其(唯一)ID选择单个元素,而.someClassName
选择一个元素(或元素,因为类可以按类名应用于多个元素。
完整规格位于https://www.w3.org/TR/CSS21/selector.html。 jQuery还会记录其中的一些内容,并提供一些自己的扩展,可在此处查看:https://api.jquery.com/category/selectors/
答案 1 :(得分:0)
感谢大家的反馈和解决方案。 然而,我确实将我的脚本移动到底层视图中,因为它没有使用Menu / Login导航部分渲染。