2017-03-08 2 views
0

나는 (일부 실험) Jupyter 노트북 변수에 이벤트를 첨부하려고 : Jupyter 노트북 변수가 지속적으로 갱신되기 때문에/등, 내가 모든 이벤트 핸들러를 연결하는 가장 좋은 방법을 생각 $("#notebook-container").on("dblclick", ".cm-variable", function(event) { alert("hi"); });Jupyter 노트북에 이벤트 위임과 함께 이벤트 리스너를 부착 하시겠습니까?

변수는 jquery 이벤트 위임을 통해 전달됩니다. https://learn.jquery.com/events/event-delegation/

"이벤트 위임을 사용하면 선택자와 일치하는 모든 자손에 대해 실행되는 단일 이벤트 리스너를 연결할 수 있습니다. 미래."

그렇기 때문에 내가 위에 쓴 코드 줄을 js 콘솔에 붙여 넣으면 원하는 효과를 얻지 못할 것입니다.

나는이 작업을 수행하는 올바른 방법이 무엇인지 궁금, 당신은 여기에 라이브 jupyter 노트북에 액세스 할 수 있습니다 https://try.jupyter.org/

+0

@LouiseDavies 바로 당신이 마우스와 함께 작동합니다. 다른 경로를 시도하기 위해 두 번 클릭 할 수있는 다른 방법이 있는지 알고 계십니까? – kyphos

답변

1

this 답변에 따라, 여기 당신이 mousedown/mouseup에를 사용하여 더블 클릭을 시뮬레이션 할 수있는 방법 (mouseup에가 사용자가 마우스를 처음 들어 올렸을 때부터 클릭이 시작된 이후부터 클릭이 시작됨)

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

관련 문제