Ho una (piuttosto semplice) domanda: come "annullare la chiamata" force.drag su una selezione effettuata da D3.js? Diciamo che ho creato un insieme di elementi e chiamato "call" su di esso, dandogli il drag-callback di un layout force-directed. Sembra:D3.js: rimuovere force.drag da una selezione
d3.selectAll('rect').call(force.drag);
Ora sarà possibile rimuovere tale comportamento da alcuni dei nodi in seguito. I miei approcci inclusi il ripristino diversi ascoltatori, come 'click', 'drag' ecc utilizzando
d3.select('rect#no-drag').on('click', null);
Nessuno di loro ha lavorato. Qualcuno sa come rimuovere la richiamata?
Questo lo risolve perfettamente, l'ho appena provato e funziona :) Gli eventi sono assegnati in modo predefinito per nome in D3.js? – user654123
Sì. Inoltre, se si aggiungono i propri listener di eventi, può essere opportuno assegnare loro uno spazio dei nomi. Consentono di utilizzare più ascoltatori ascoltando lo stesso evento. – nautat
Ok, conoscevo già gli eventi namespace dallo sviluppo di plug-in jQuery. Sembra che D3.js ti permetta di registrare solo un singolo callback per ogni evento qualificato, quindi ha senso per lo spazio dei nomi. Grazie ancora. – user654123