jQuery不会模拟clickto链接的点击

时间:2012-07-18 12:30:55

标签: jquery

在我的jQuery Mobile应用程序中,我试图以编程方式单击mailto链接但没有成功。

以下是HTML代码:

<section id="mensen" data-role="page">

<div data-role="content" class="content">
<a id="emailLink" href="mailto:123@123.com">This is the email link</a>

</div>
</section>

jQuery代码是:

$(document).ready(function()
{   
$('#emailLink').click();
})

链接功能正常,如果直接点击,则会启动默认电子邮件客户端,但不会以编程方式发生任何事情。

3 个答案:

答案 0 :(得分:10)

确实是的,但这会有效

$(document).ready(function()
{   
   $('#emailLink')[0].click();
})​

编辑:(“为什么?”评论)

因为使用jquery $(...)完成的查询返回元素的数组/对象。 我们必须使用索引[0](期望只有一个因为它的id)才能调用链接对象的.click函数而不是jquery结果数组。 btw我不希望数组具有该功能

jquery结果数组应该有一个.get(...)函数来从结果中检索元素

答案 1 :(得分:2)

绑定点击事件并使用窗口位置触发事件:

<a id='test' href="mailto:test@test.nl">Test</a>​

和jquery:

$('#test').bind('click', function() {
  window.location.href = $(this).attr('href'); 
});

$('#test').click();

JSFIDDLE

答案 2 :(得分:0)

在此页面上尝试所有答案和评论后,我终于能够打开包含主题和目标属性的mailto链接。我只在Chrome(版本37.0.2062.124 m)和IE-11中测试了这个:

    $("#form-email").on("submit",
        function (e) {
            e.preventDefault();
            var mailto = "aname.gmail"
            $("#email-form").attr("href", "mailto:" + mailto.replace(".", "@") + ".com?subject=Email from someone...");
            document.getElementById('email-form').click();
        }
    );

<强> HTML

    <a href="" id="email-form" target="_blank" >