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

标签 javascript jquery asp.net

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

e.preventDefault;
e.stopPropogation;

特别是使用回车键时,即使输入了这两行,它仍然会提交表单。我可以让它工作的唯一方法是使用以下内容:

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

但是从我读到的内容来看,您不应该使用它们,因为这两个 jQuery 方法是独立于浏览器的。任何有助于理解这一切的帮助都会很棒:-)

更新 我将处理程序放在这样的 block 中:

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

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

    });

这只是一个简单的示例,用于尝试立即停止 Enter 键行为:一旦确定,将为其他箭头添加 keyCode == 38 和 40。

最佳答案

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

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

但是返回 false 更容易(与同时调用两者相同):

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

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

});

关于javascript - ASP.NET jQuery 停止事件传播和冒泡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16409864/

相关文章:

javascript - JQuery 追加在 IE9 和 JQuery 1.7.1 中不起作用

javascript - 使用 browserify 和 Angular 动态要求

javascript - 如何使用 CSS 选择器获取 href 文本

jquery - 调整 slider 内容的 div 高度

javascript - 使 div 内容持久化

c# - 将数据保存在文本框中,就像按 BACKSPACE 一样

asp.net - “Microsoft.AspNet.Web.Optimization”与 'Microsoft.AspNet.Web.Optimization.WebForms'

javascript - 如何删除此 JavaScript 空错误?

jquery - 调整 DIV 的大小以仅显示完整的文本行

c# - 正则表达式读取 HTML 中的标签