jQuery Propagation Firefox Bug?

时间:2011-10-06 17:31:28

标签: jquery firefox

此脚本与Chrome和Safari完美配合,但由于某种原因,Firefox正在烦恼:

<script type="text/javascript">
var $j = jQuery.noConflict();

$j(document).ready(function(){

    $j(function(){
        $j('.next').click(function() {
            location.href = $j(this).attr('href');
        });
        $j('.prev').click(function(){
            location.href = $j(this).attr('href');
        });

    });

    $j('body').keydown(function(event) {
        if(event.keyCode==82) {
            $j(document).trigger(location.href = '/?random');
        }
        if(event.keyCode==39) {
            $j('.next').trigger('click');
        }
        if(event.keyCode==37) {
            $j('.prev').trigger('click');
        }
    });

    $j('input, textarea').keydown(function(){
        event.stopPropagation();
    });

});
</script>

如果您在键盘上向左或向右按​​,则会转到下一个/上一页。如果你点击R,它会带你到一个随机页面。但是,如果您在inputtextarea中输入内容,则会关闭键盘导航(因此,如果您按R,向左或向右键,则可以在没有意外页面加载的情况下键入)。 / p>

它在Chrome和Safari中运行良好,但在Firefox中它会出现问题,而键盘导航只能在您输入inputtextarea时才有效。它与预期相反。

我已经禁用了Firefox中的所有附加组件,但没有帮助。有一些随机的时间,它已正常工作,但我不能复制它们。我很难过为什么这不适用于Firefox ......任何想法?非常感谢提前!

1 个答案:

答案 0 :(得分:1)

您似乎错过了函数中的event参数:

$j('input, textarea').keydown(function(){
    event.stopPropagation();
});