【发布时间】:2011-10-20 00:27:02
【问题描述】:
我有一个包含 100 多个超链接的网页,这些超链接都设置了 onClick 和 href 属性。这在大多数情况下都有效,但我遇到了像 IE7 这样的浏览器在 onClick 属性上使用 href 属性的问题。我需要将 onClick 属性设为默认值,以便我的函数在点击时加载。我想我可以使用 jQuery 轻松地做到这一点,并将点击事件设置为 onClick 属性值,但我没有任何运气,我该怎么做呢?现在,下面的代码将大量点击事件设置为单个超链接。当我点击一个超链接时,我可以看到为超链接多次发送的 GET 事件。
$("a[href*='/RightSizeOption/NewForm.aspx']").click(function() {
OpenPopUpPage($(this).attr('href'), RefreshPage);
return false;
});
【问题讨论】:
-
最好的办法是一劳永逸地清理你的代码。这样会更容易维护。此代码只会为每个与选择器匹配的链接添加一个单击事件处理程序。
-
所以,你说你已经删除了 onclick,并且你正在使用上面的代码专门设置点击处理程序......你确定点击处理程序实际上被触发超过一次?还是您的 OopenPopUpPage 正在做一些时髦的事情?尝试在 click 处理程序中添加一个 console.log 语句以确定它实际执行了多少次。
-
另外,如果我将 "$(this).attr('href')" 放入警报中,它会通过我点击的超链接的 href 提醒我 10 次以上?
-
向我们展示您的 html 代码示例,其中包含一些链接,以便我们恢复行为。
-
这是一个 SharePoint 2010 页面,之前我使用连接 href 和 OpenPopUpPage 函数(模式对话框的共享点函数)的函数设置 onClick 事件。我现在禁用了设置 onclick 的脚本并尝试使用上面的 jquery 来设置点击事件,它最终将 100 多个模式对话框全部启动到同一页面....我认为启动的数量等于超链接的数量
标签: javascript jquery sharepoint click onclick