當我點擊頁面中的鏈接時,它並不總是在javascript中註冊。這是一個MVC解決方案,這是封裝在Site.Master頁面中的一個視圖。爲什麼點擊事件沒有在關聯的javascript中註冊?
第一個例子有效。 頁:(someView.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,它不起作用 - 它轉到$(document)...行,然後跳過整個函數,因此沒有將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>
難道你不能預防嗎? – Dvir
看起來不錯,你可以提供不工作的鏈接的渲染標記嗎? –
JavaScript是由其他人編寫的,但我使用它...並且它對第一個ActionLink項目正常工作。 – silvenwolf