如何在导航中单击菜单项以触发jquery单击事件

时间:2018-06-15 13:17:39

标签: jquery asp.net asp.net-mvc events

我有一个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>

2 个答案:

答案 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导航部分渲染。