【问题标题】:Event reverse order事件逆序
【发布时间】:2015-05-11 00:07:58
【问题描述】:

我想知道如何更改事件的顺序。 因为我必须检查我何时点击了 focusOut,如果点击是在父 div 内,我不能让它发生 focusOut。

问题,也就是第一个事件focusOut点击事件。

是否可以颠倒事件的顺序? (点击 - focusOut)?

http://jsfiddle.net/eL19p27L/5/

$(document).ready(function(){
    $(".clean").click(function(){
        $(".alert").html("");
    });



    $(document).on({
        click: function(e){
            $(".alert").append("<p>click</p>");
        },
        focusin: function(e){
             $(".alert").append("<p>focusin</p>");
        },
        focusout: function(e){
            $(".alert").append("<p>focusout</p>");
        }

    })
});

这样会更好。如果我能检测到事件可能会产生什么结果来生成fucusout。因此检查它是否发生在父 div 中,如果不是 focusIn,则不给出 focusOut。

攻击

【问题讨论】:

  • 您必须自己提供相关代码...
  • 您是否可以选择使用mousedown?如果没有,您可以延迟 focusout 处理程序
  • 请准确解释您要做什么。不是在事件方面,而是在行为方面
  • @A. Wolff - 我可以延迟使用:setTimeout。我应该放多长时间? ATT

标签: javascript jquery


【解决方案1】:

不,您在公共父级上设置事件处理程序的方式,您无法更改事件的顺序。

但是,您可以将事件处理程序附加到您要观看的特定对象,然后您只能查看该对象的事件。

或者,您可以查看事件的目标并查看哪个对象是哪个对象,您将看到 focusOut 事件与 click 事件位于不同的对象上。

您可以通过e.target查看事件来源。

查看作为事件源的对象的示例:http://jsfiddle.net/jfriend00/u5tLhes7/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 2015-12-08
    • 2017-09-01
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多