0
<a id="news_click" href="#news"> <span style="color:#B2B2B2" class="radius secondary label">Do you want fresh news and feeds?</span></a>

<div class="large-5 columns">
    <div class="row collapse">
        <div class="small-12 columns">
            <form id="email_form" data-validate="parsley" data-trigger="focusin focusout">
                </br>
                <input id="email" type="text" placeholder="Email" class="hg" name="email" data-notblank="true" data-type="email">
            </form>
        </div>
    </div>
</div>

<div class="bottom_blue" id="news"></div>

$('#news_click').click(function () {
    $('form#email_form input#email.hg').focus();
});

焦点事件仅在我删除<div class="bottom_blue" id="news"></div. 这不是一个选项,因为这是一个锚链接。

任何想法?可能问题是js是在anchor之前执行的。

编辑:显然这适用于 chrome,而不是 FF。

演示

4

2 回答 2

3

本质上,您需要考虑点击事件并将焦点作为 Firefox 中的竞争条件。使用任一:

$('#news_click').click(function (e) {
    e.preventDefault();
    $('#email').focus();
});

或者

$('#news_click').click(function (e) {
    setTimeout(function(){$('#email').focus();},10);
});

jsFiddle 示例

于 2013-10-24T22:31:05.077 回答
1

<div class="bottom_blue" id="news"></div您忘记了...末尾的尖括号

演示在这里

改用这个:

<div class="bottom_blue" id="news"></div>

另外,尝试改变这个:

$('form#email_form input#email.hg').focus();

对此:

$('#email').focus();

无论如何,只能有一个元素相同id,因此您的具体程度没有区别。

编辑: Firefox 似乎href在框聚焦后访问email...您可以使用preventDefault()j08691 的答案,也可以href从链接中删除属性(请参阅更新的小提琴)。

于 2013-10-24T22:23:38.127 回答