2015-05-10 39 views
0

我想知道如何更改事件順序。 因爲我必須檢查當我點擊一個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。

ATT

+4

你必須提供在問題本身相關的代碼... –

+1

是使用'mousedown'一個選擇?如果不是的話,你可以推遲'focusout'處理程序 –

+0

請準確解釋你正在嘗試做什麼。不是以事件而言,而是以行爲方式 – charlietfl

回答

1

不,你有你的事件處理程序,建立一個共同的父的方式,你無法改變事件的順序。

但是,您可以將事件處理程序附加到要觀看的特定對象,然後您只能看到該對象的事件。

或者,您可以查看事件的目標並查看哪個對象是哪個,並且您將看到focusOut事件位於與click事件不同的對象上。

您可以通過e.target查看活動的來源。

看待作爲事件源的對象

例子:http://jsfiddle.net/jfriend00/u5tLhes7/