2013-05-21 2 views
2

노드 컬렉션 (또는 노드 배열)을받는 createTable 함수가 있는데 테이블을 그릴 수 있습니다.cy.on ('select') 콜백 만 한 번만

저는 현재 cytoscape.js로 전환 중이며, 실제로 선택 이벤트에 대한 청취자를 올바르게 유지하는 방법을 알지 못합니다. 이렇게

:

cy.on('select', 'node', function(event){ 
     window["selectedNodes"] = cy.$('node:selected'); 
}); 

내가 내 테이블을 그릴 필요로하는 모든 정보를 가지고 할 수 있지만, 내 함수를 여러 번 호출하기 때문에 내가 (한 번 노드 당 선택) 그 안에 내 CreateTable에서 함수를 호출 할 수 없습니다. 이미 cy.on 및 cy.once를 사용해 보았지만 성공하지 못했습니다. 여기

내 질문은 :

어떻게 내 선택 이벤트 리스너를 가질 수 ALL 선택된 노드와 (한 번만) 호출 내 CreateTable에서 기능을 얻을?

나는이를 사용하여 선택한 모든 노드를 얻을 수 있습니다

cy.elements('node:selected', console.log("my CallBack function")); 

을하지만 이벤트 리스너 (/ 클릭을 선택) 외부로 내가 원하는대로 작동하지 않습니다.

제발, 어떤 도움을 주시면 감사하겠습니다.

감사합니다.

답변

1

디 바운스 여러 이벤트가 연이어 올 경우, 그들은 효과적으로 일괄 처리되도록 콜백 :

var timeout; 
cy.on('select', 'node', function(event){ 
    clearTimeout(timeout); 
    timeout = setTimeout(function(){ 
    window["selectedNodes"] = cy.$('node:selected'); 

    // and so on... 
    }, 100); // may have to adjust this val 

});