我想覆盖链接的点击功能,抛出警报,然后激活链接。这听起来有点令人困惑,所以希望我的代码能够清除它:
// first, find all 'a' elements with the class 'some_class'
$('a.some_class').click(function(event)
{
// capture the current click event
var current_link = $(this).click;
// stop the current link from firing
event.preventDefault();
// call to the alert function
launchAlertAndAfterAction('Hello World', current_link);
});
function launchAlertAndAfterAction(message, after_action)
{
alert(message);
if (after_action != null && after_action != undefined)
{
after_action();
}
}
此代码可防止链接触发,启动警报,但在弹出消息后它不会触发链接。错误如下:
Uncaught TypeError: this.trigger is not a function
我非常确定我的错误在于我的代码捕获当前的点击事件($(this).click),但我不太了解JavaScript能够得到我想要的东西
如果我能提供更多信息,请告诉我!
答案 0 :(得分:3)
您的current_link
变量不是您要执行的函数,它是一个jQuery单击处理程序。
您也不想立即阻止默认事件操作,而是让它等到其他结果(单击对话框按钮)返回。
请参阅此simple jsfiddle for adding a confirm action before following a link。
答案 1 :(得分:1)