event.preventDefault()没有停止与/ gmail的mailto链接

时间:2011-08-28 03:27:08

标签: jquery mailto webmail preventdefault

我有一个jQuery函数,偶数.preventDefault()应用于点击任何具有'editable'类的元素。

然而,这并没有阻止gmail打开它发送电子邮件的接口。它适用于未设置默认邮件行为的系统(我主要测试的那个)。不确定它何时通过Outlook或实际的邮件应用程序运行。

是否有一些解决方法?

$('.editable').not('video, img, textarea').click(function(event) { 
        event.preventDefault();
        loadEditor($(this));
    });

编辑:我也尝试过event.stopPropagation();但它仍在经历。

5 个答案:

答案 0 :(得分:1)

尝试添加return false,

$('.editable').not('video, img, textarea').click(function(event) { 
        event.preventDefault();
        loadEditor($(this));
        return false;
    });

event.preventDefault() vs. return false

答案 1 :(得分:1)

gmail接口事件处理可能发生在浏览器中,因此请尝试调用event.stopPropagation

答案 2 :(得分:0)

event.preventDefault()适用于具有与之关联的默认行为的元素。

E.g。锚元素重定向到href中设置的url,表单提交事件提交表单。对于这种情况,event.preventDefault()将停止其行为。

您面临的问题是事件冒泡,您应该使用event.stopPropagation()以及(event.preventDefault()或返回false)。

 $('.editable').not('video, img, textarea').click(function(event) { 
        event.stopPropagation();
        loadEditor($(this));
        return false;
    });

答案 3 :(得分:0)

我不确定是否真的有办法阻止这种情况,其他答案中提到的与事件无关的jQuery命令都没有效果。

与此同时,我在启用编辑时删除了链接的“mailto”部分,并且它可以正常完成工作。

答案 4 :(得分:0)

对于那些仍然无法解决为什么在也链接到mailto的提交链接按钮上没有任何影响的人,我认为问题是适用于Chrome的Mailto:for Gmail扩展程序。该链接在Firefox中运行良好。一旦在Chrome中禁用上述扩展程序,链接就可以正常工作。