【问题标题】:Prevent jQuery widget event防止 jQuery 小部件事件
【发布时间】:2013-08-22 13:59:13
【问题描述】:

我正在使用 Twitter 引导程序“TimePicker”小部件。当“.keydown”事件被触发时,这个小部件具有增加/减少时间的行为。

我需要阻止这种默认行为。我怎样才能做到这一点?

目前我尝试直接拦截和阻止 html 输入元素上的事件。我看到 .keydown 事件被拦截和阻止,但 TimePicker .keydown 事件仍然触发:

    $('#timeInput').keydown(function (e) {
        var keyCode = e.keyCode || e.which,
            arrow = { up: 38, down: 40 };

        switch (keyCode) {
            case arrow.up:
                window.debug.info("Key Up prevented");
                event.preventDefault();
                break;
            case arrow.down:
                window.debug.info("Key Down prevented");
                event.preventDefault();
                break;
        }
    });

我可以覆盖“TimePicker”控件的默认行为吗?

【问题讨论】:

    标签: javascript jquery jquery-widgets


    【解决方案1】:

    您可以随时移除按键行为:

    $('#timeInput').unbind('keydown');
    

    或在小部件初始化之后:

    $('#timeInput').timepicker(options).unbind('keydown');
    

    【讨论】:

    • 其实我不想禁用“keydown”事件,但我需要覆盖小部件默认的“keydown”行为。
    【解决方案2】:

    当您发送名为 eevent 时,只需更改以下内容:

    event.preventDefault();
    

    到那个:

    e.preventDefault();
    

    【讨论】:

      猜你喜欢
      • 2020-03-09
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多