为什么点击事件没有在关联的 javascript 中注册
Why is the click event not being registered in the associated javascript?
当我点击页面中的链接时,它并不总是在javascript中注册。这是一个 MVC 解决方案,这是封装在 Site.母版页中的视图之一。
第一个示例有效。页面: (某视图.aspx(
<%: Html.ActionLink("Add", "AgentNotesCreate", "AgentNotes", new { id = Model.AgentId }, new { @class="addLink"} )%>
(呈现链接(
<a class="addLink" href="/AgentNotes/AgentNotesCreate/152">Add</a>
Javascript:
$(function () {
$(document).on("click", "a.addLink", function () {
var newHref = $(this).attr("href");
if (newHref.split("?").length > 1) {
// There's already a query string attached - we're adding our own on top.
newHref += "&returnToken=" + $("#page_redirect_token").val();
}
else {
// We're adding the only querystring parameter
newHref += "?returnToken=" + $("#page_redirect_token").val();
}
$(this).attr("href", newHref);
});
}(;
但是,第二个示例也引用了上面的相同javascript,不起作用 - 它转到$(文档(...,然后跳过整个函数,因此没有将 returnToken 添加到 URL 中。
第二个例子:(somesecondview.aspx(
<%:Html.ActionLink("Add", "EMDProductShelfCreate", "EMDProductShelf", new{id = Model.PersonId}, new{@class="addLink"} ) %>
(呈现链接(
<a class="addLink" href="/EMDProductShelf/EMDProductShelfCreate/45">Add</a>
正如您的问题最初编写的那样,您的第一个呈现链接示例:
<a href='#' class="deleteAgentNotes">Delete</a>
与事件处理程序中的选择器"a.addLink"
不匹配:
$(document).on("click", "a.addLink", function () {
因此,当您单击该呈现的链接时,它与事件处理程序不匹配,因此不会发生任何事情。 如果这是您希望这行代码工作的呈现链接,那么它应该是这样的:
$(document).on("click", ".deleteAgentNotes", function () {
另外,由于我看到您正在更改单击链接的href
,因此您应该意识到委托的事件处理程序在实际链接上处理单击后运行,因此链接中的 href 将首先作,如果这会将浏览器带到新页面,委托的事件处理程序甚至没有机会运行。 因此,基本上不可能使用委托事件处理来覆盖链接的行为,因为在委托事件处理程序获得事件之前,默认行为已经发生。 如果希望链接具有的唯一行为是通过委托的事件处理程序,则可能需要将 <a>
标记更改为<span>
,以便没有单击处理程序的默认处理,然后完全在事件处理程序中处理单击。 如果要在单击时将用户带到新页面,只需在事件处理程序中执行window.location = "your url"
即可。 不需要为此使用链接。
相关文章:
- node.js/javascript/couchdb视图到关联数组似乎不起作用
- JavaScript JSON关联对象键和值都作为日期时间戳
- 如何创建php函数或任何脚本/jquery Javascript,使我能够获取与复选框关联的值并添加它们
- 我应该如何循环通过和“;关联对象“;在javascript中
- 如何在具有相同 ID 的 Javascript 中按排序函数对关联数组进行排序
- 在主要的JavaScript引擎中,在JavaScript关联数组(动态对象属性)中检索/插入的复杂性是多少
- JavaScript:如何在最接近值的关联数组中查找键
- 将关联的值从弹出窗口传输到父窗口 JSP/Javascript
- 创建具有关联 dom 元素的 javascript 对象的首选方法是什么
- Javascript从关联数组中查找最低数字(气泡排序方法)
- 正在检查JavaScript中是否存在关联数组
- JavaScript关联数组
- 为什么JavaScript中的逻辑运算符是关联的
- Rails4:从Javascript调用的Action;t请参阅模型关联(NoMethodError)
- 使用javascript创建动态多维关联数组
- Javascript关联数组,返回与特征关联的名称
- javascript数组既可以是数字数组,也可以是关联数组
- 如何遍历多维关联 JavaScript 数组
- 代码关联javascript数组与多个值
- 多维关联javascript对象