簡體   English   中英

如何檢查事件是否被觸發?

[英]How to check if an event was fired or not?

我正在使用Chrome DevTools來調試JavaScript。 在我的腳本中,我使用jQuery bind()方法bind() click事件綁定到元素。 如何檢查該事件是否被觸發?

編輯
抱歉,因為我沒那么具體,我知道我可以使用console.log()或在事件監聽器體內設置斷點。 我在這里談論的是Chrome DevTools的開箱即用功能,它允許您在不使用控制台的情況下進行檢查,例如包含所有使用相關信息觸發的事件的選項卡。

關於Chrome,請通過命令行API檢查monitorEvents()。

  • 通過菜單>工具> JavaScript控制台打開控制台。
  • 輸入monitorEvents(window);
  • 查看充斥着事件的控制台

     ... mousemove MouseEvent {dataTransfer: ...} mouseout MouseEvent {dataTransfer: ...} mouseover MouseEvent {dataTransfer: ...} change Event {clipboardData: ...} ... 

文檔中還有其他示例。 我猜這個功能是在上一個答案之后添加的。

使用console.log()進行更加用戶友好的檢查(當然必須打開控制台才能看到結果):

$("#myElement").bind("click", function() {
   console.log("Fired!");
});

或者你可以提醒它,這更令人討厭:

$("#myElement").bind("click", function() {
   alert("Fired!");
});

您可以嘗試以下代碼來檢查事件是否觸發。

var eventFire = false;

$("button").on("click", function() {
   eventFire = true;
if(eventFire){
    alert('Event Fired')
}   
});   

我通常使用警報(因為我們在Rails上開發 - 控制台不可靠):

$(document).on("event", "#element", function() { 
    alert("event");
});

最重要的是,您將不得不觸發一些“可見”的事情來查看事件是否被觸發。 如果沒有,您將不會綁定到正確的元素,或者您的事件將不會被觸發

希望這可以幫助!

使用jQuery嘗試以下方法:

$("#el").on("click", function() {
    console.log("Fired!");
});

然后,您可以查看事件是否被觸發。 所以基本上只需在事件觸發的函數中添加一個日志即可。

你可以發出“警告('消息');” 在你的事件處理程序中,每次處理程序觸發時都會看到一個彈出窗口。 或者你可以把“console.log('message');” 在您的事件處理程序中並查看日志以查看事件觸發的所有時間。 或者,您可以將“調試器”放在事件處理程序中,並在Chrome調試器中執行時逐步執行代碼。 還有一種方法可以使用chrome dev工具元素面板動態查找事件處理程序並在代碼中插入調試器斷點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM