ASP.NET jQuery停止事件传播和冒泡

时间:2013-05-07 01:33:59

标签: javascript jquery asp.net

我正在使用一些混合到ASP.NET页面的jQuery,它似乎没有做它应该做的事情。我正在尝试重新分配向上和向下箭头并输入文本框的键,以便用户可以在列中上下导航(就像在Excel中一样)。我已将事件处理程序设置为OK并且它可以正常工作,但我无法使以下部分正常工作:

e.preventDefault;
e.stopPropogation;

特别是使用回车键,它仍在提交表格,即使这两行也是如此。唯一能让它运作的方法是:

event.cancelBubble = true;
event.returnValue = false;

但是从我读过的内容中你不应该使用它们,因为两个jQuery方法是浏览器无关的。任何帮助理解这一切都会很棒: - )

更新 我有一个像这样的块中的处理程序:

    //handles the up/down arrow behaviour of the score boxes
    $('.gScoreTB').keydown(function (e) {

        if (event.keyCode == 13) {
            event.cancelBubble = true;
            event.returnValue = false;
        }

    });

这是一个简单的例子,试图在此刻尝试停止回车键行为:一旦将其钉入,将为其他箭头添加keyCode == 38和40。

1 个答案:

答案 0 :(得分:3)

preventDefaultstopPropagation都是函数,所以你应该这样做:

e.preventDefault();
e.stopPropogation();

但是return false更容易(这与调用两者相同):

//handles the up/down arrow behaviour of the score boxes
$('.gScoreTB').keydown(function (e) {

    if (e.keyCode == 13) {
        return false;
    }

});