2016-08-27 5 views
0

Я создаю систему виджетов для инструмента создания веб-приложений Weld, и я хотел бы иметь возможность передавать данные между элементами на DOM.Можно ли передавать данные между элементами с помощью события JavaScript?

В идеале что-то вроде:

var myObject = { name: 'Bob', age: 35 }; 

// Send change event with data 
$('#myElement').trigger('change', myObject); 

// Listen to change event and receive data 
$('#myElement').change(function (event, myObject) { 
    console.log('#myElement received', myObject); 
}); 

ли что-то подобное возможно?

Чтобы уточнить, срабатывает триггер/прием событий, но могу ли я как-то передать myObject с событием?

+0

Да. Посмотрите на jquery trigger api –

ответ

1

Да, это возможно. Имейте в виду, что $.trigger заканчивается использованием Function.apply на любых слушателей, поэтому дополнительные аргументы вы передаете для запуска должны быть в массиве:

var myObject = { name: 'Bob', age: 35 }; 

// Send change event with data 
$('#myElement').trigger('change', [myObject, 'hi']); 

// Listen to change event and receive data 
$('#myElement').change(function (event, myObject, someMessage) { 
    console.log('#myElement received', myObject, someMessage); 
}); 

Это описано в документации: http://api.jquery.com/trigger/

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