【问题标题】:Getting all buttons in a placeholder to have the same click event trigger让占位符中的所有按钮具有相同的单击事件触发器
【发布时间】:2013-03-21 17:53:39
【问题描述】:

我有一个占位符

<div class="main2" id="divAgentMenu" runat="server">
    <ul class="nav sf-menu">
        <asp:PlaceHolder ID="phAgentMenu" runat="server"></asp:PlaceHolder>        
    </ul>
</div>

它在后面的代码中加载了链接按钮。不幸的是,此时我无法访问生成按钮的代码,因此向按钮添加东西(如 ID)是不可行的。(如果这是唯一的解决方案,那么我该看看我是否能做到然而改变了) 为了让事情更有趣,我需要知道触发了哪个按钮,这样我才能生成正确的链接。(是的,我可以按原样生成链接,但这是一项昂贵的操作,所以我宁愿只在需要) 我希望有一种方法可以将 onclick 应用于占位符或使用表单,但我无法让这两种方法起作用

从运行时生成的代码。

<ul class="nav sf-menu">

    <li class="home-li"><a class="home-link" onclick="popup(&#39;popUpDiv&#39;)" href="http://..."><img class="home-icon" src="Images/home_icon.png" alt="home" />Home&nbsp;&nbsp;</a><ul><li><a onclick="popup(&#39;popUpDiv&#39;)" href="http://...">Activity</a></li><li><a onclick="popup(&#39;popUpDiv&#39;)" href="http://...">My Profile</a></li></ul></li><li><a onclick="popup(&#39;popUpDiv&#39;)" href="http://...">Submission&nbsp;&nbsp;</a><ul><li><a onclick="popup(&#39;popUpDiv&#39;)" href="http://...">New Submission</a></li><li><a onclick="popup(&#39;popUpDiv&#39;)" href="http://...">Manage Submission</a></li><li><a onclick="popup(&#39;popUpDiv&#39;)" href="http://...">Bind Eligible Quotes</a></li></ul></li><li><a onclick="popup(&#39;popUpDiv&#39;)" href="http://...">Search&nbsp;&nbsp;</a></li><li><a href="http://..." target="_blank">Reporting&nbsp;&nbsp;</a>

</ul>

生成的代码(网址因过长而被删除。)(它们是有效的) 基本上,它是一系列外观精美的按钮,每个按钮都链接到某个地方。我需要在按下按钮之后计算链接,而不是之前,遗憾的是,由于处理时间(链接生成方法涉及加入多个数据表,一些加密......)

好的,经过进一步研究,似乎唯一的方法是将所有链接按钮直接指向另一个页面,传递所需的信息。另一个页面获取该信息,生成最终链接,然后重定向到该链接。

当然,这有点麻烦,因为我本质上是在获取一个菜单,指向一个网关,该网关指向另一个网关,该网关可能指向另一个网关,然后再到达那里。

【问题讨论】:

  • 你能给我们展示一些占位符在渲染时的样子吗?
  • 并且... 生成的 html 已添加。我会向您展示菜单的外观,但这里似乎没有有用的信息。

标签: javascript asp.net html vb.net


【解决方案1】:

根据您的评论,听起来您想在执行默认链接行为并且页面重定向之前计算单击链接时要转到的实际链接。你可以这样做:

$('#phAgentMenu').find('a').live('click', function(e) {
    e.preventDefault(); //this prevents the link from redirecting
    //now calculate your link
    var linkDestination = yourLinkCalculation();
    window.location.href = linkDestination;
});

【讨论】:

  • 可悲的是,不是链接计算,是不需要在加载时计算,而是在点击时计算。
  • @Archmage1 我不明白。你是说在实际重定向到原始链接之前需要计算链接,然后重定向到计算的链接?如果是这样,你可以这样做。我更新了我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-28
  • 1970-01-01
  • 2021-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多