2017-03-08 61 views
0

我試圖連接到Jupyter筆記本變量事件(一些實驗):將事件監聽器與事件代表附加到Jupyter筆記本上?

$("#notebook-container").on("dblclick", ".cm-variable", function(event) { alert("hi"); });

由於Jupyter筆記本變量被不斷刷新的/ etc,我想將事件處理程序附加到所有的最好辦法變量將通過jQuery的事件代表團:https://learn.jquery.com/events/event-delegation/

「事件代表團允許我們附上一個單一的事件偵聽器,以父元素,將火了選擇匹配的所有後代,無論是現在存在或在添加這些後代未來。」

所以我覺得這是合適的,但是,如果我將上面分享的代碼行粘貼到js控制檯中,我沒有得到期望的效果。

我想知道什麼是做這種正確的方法,就可以在這裏一住jupyter筆記本:https://try.jupyter.org/

+0

@LouiseDavies你是正確的它與鼠標按下!你知道是否有另一種方式來達到雙擊,只是嘗試其他路線? – kyphos

回答

1

基於this答案,這裏是如何使用鼠標按下/鼠標鬆開模擬雙擊(鼠標鬆開是可能會更好,因爲點擊的就是用戶解僱後提升自己的鼠標,而不是當他們第一次按下)

var clicks = 0, delay = 400; 
$("#notebook-container").on("mouseup", ".cm-variable", function(event) { 
    event.preventDefault(); 
    clicks++; 

    setTimeout(function() { 
     clicks = 0; 
    }, delay); 

    if (clicks === 2) { 
     clicks = 0; 
     alert("hi"); 
     return; 
    } 
}); 
+0

謝謝,這完美的作品! – kyphos