2013-09-10 4 views
0

Вот код, который я имею от sigma.js:JavaScript код объяснение (события + холст) [sigma.js]

function f(event) 
    { 
     sigInst.iterNodes(function(n){ 
     node = n; 
     },[event.content[0]]); 

     alert(); 
    } 


sigInst.bind('click',f).bind('outnodes',f).draw(); 

Я не понимаю этого:

  1. откуда функция f получает event? никто не проходит.

  2. линия },[event.content[0]]);

Могу ли я добавлять события в брезентовых элементов? sigma.js рисует холст, а затем (я не понимаю, как) есть прослушиватели событий на click и outnodes. Как это происходит?

Благодаря

ответ

1

откуда функция F получает это событие? никто не проходит.

автоматически отправляется функцией bind - при выполнении обработчика.

line}, [event.content [0]]);

Это просто аргумент функции iterNodes который является массивом размера 1, который имеет значение именованного содержания имущества, которое также является массив, поэтому он занимает первую ячейку.

+0

Я не знаю, если это сделать, документация очень плохая – vlio20

+0

@ VladIoffe Плохая документация не является признаком «unsure of». Доверьтесь мне. его как jQuery. вот как это работает. –

1

Sigma использует собственный диспетчер событий. Как вы можете увидеть здесь:

https://github.com/jacomyal/sigma.js/blob/master/src/classes/eventdispatcher.js#L129

Он отправляет события с определенными параметрами самостоятельно. Когда вы bind что-то, оно всегда выполняется через какой-то диспетчер/триггер. Отправка/триггер, как видно из ссылки, добавляет пользовательские параметры, поэтому вы можете получить доступ к content.

+0

Знаете ли вы, что это любой файл sigma.js, который не является мини-дисплеем? – vlio20

+1

Если вы клонируете репо и запустите эту команду: cat ./src/intro.js 'find ./src/classes -name" * .js "' ./src/sigmaintro.js 'find ./src/core -name "* .js" '' find ./src/public -name "* .js" './src/sigmaoutro.js> build/sigma.concat.js' Он создаст объединенную версию библиотеки. –

+1

Здесь я сделал это для вас с последней версией. https://gist.github.com/mattkenefick/6512949 –

Смежные вопросы