【问题标题】:jquery adding a mail linkjquery添加邮件链接
【发布时间】:2015-03-03 17:06:34
【问题描述】:

我正在尝试完成个人页面的联系人部分,其中我的每个社交媒体/联系人页面的 URL 作为 div 中的文本。当用户点击它时,它会转到指定的链接。但对于我的电子邮件地址,我自然希望他们使用他们的邮件应用程序。因此我写了这个jquery:

$(".contact-info").click(function() {
    var link = $(this).text();
    if (link == "foo@bar.com") {
        link = "mailto:" + link;
    }
    window.location.href = link;
});

如果有帮助,连同这个 html 和 css:

<div class="contact-info">
    <div class="contact-img">
       <img src="assets/img/icon_at.png">
       <div class="contact-link">foo@bar.com</div>
    </div>
</div>

.contact-info {
    width: 40%;
    height: 50px;
    display: inline-block;
    padding: 0px 10px;
    margin-bottom: 10px;
    margin-top: 10px;
    margin-right: 40px;
    margin-left: 20px;
    cursor: pointer;
}

直接链接可以正常工作,但邮件箱总是给我一个 404 错误。有人能告诉我我在这里做错了什么吗?

更新:“contact-info”是我应用于每个 div 的类,代表一种联系方式,即 Facebook、LinkedIn 和电子邮件。

【问题讨论】:

  • 什么是.contact-info?为什么你不只是使用链接开始?似乎您正在重新创建轮子。
  • 在这里为我工作:jsfiddle.net/barmar/jbh2ovg3
  • 以上评论也对我有用。
  • 它似乎要去myDomain/foo@bar.com,我猜它为什么给我一个404,而不是我网站上的邮件客户端。
  • 发布失败的示例html...

标签: javascript jquery html


【解决方案1】:

希望有帮助

$(".contact-info").click(function(e) {
    e.preventDefault();
    var link = $(this).text();
    if (link == "foo@bar.com") {
        link = "mailto:" + link;
    }
    window.location.href = link;
});

【讨论】:

  • 你在 div 中的文本上阻止了什么默认值?
  • 嗯,抱歉我忘记了“div 中的文本”。
  • 使用===。字符串到字符串的比较。不需要类型强制
【解决方案2】:

总是可以使用匹配,以防万一您有支持/信息/帮助/等...

$(".contact-info").on('click', function(e) {
    e.preventDefault();
    var link = $(this).text();
    window.location.href = (link.match('@')) ? "mailto:" + link : link;
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    • 2012-10-29
    • 2013-08-22
    • 1970-01-01
    • 2015-03-02
    • 1970-01-01
    相关资源
    最近更新 更多