jquery .on() передает данные через функцию
Я читаю документацию.on() jquery.
И можно ли передать некоторые данные, как это:
function greet( event ) {
alert( "Hello " + event.data.name );
}
$( "button" ).on( "click", {name: "Karl"}, greet );
Прототипом метода является:
$(selector).on(event,childSelector,data,function,map)
Можно ли иметь более сложный тонкий элемент вместо строки в параметре данных?
В моем случае: я буду динамически генерировать некоторые всплывающие окна с вводом числа внутри и некоторым текстом.
Можно ли захватить информацию внутри всплывающего окна вызывающего абонента, то есть номер и текст всплывающего окна вызывающего абонента? Может быть, что-то вроде этого:
$(document).on('click', '#id',
var data =[
var number = functionThatGetTheNumberOfThePopup
var test = captureTextOfPopup
] ,
function(event){
//use number
//use test
});
2 ответа
Да, вы можете передавать произвольные данные. Вы делаете это в виде объекта:
$(document).on('click', '#id', {
number: functionThatGetTheNumberOfThePopup,
test: captureTextOfPopup
},
function(event){
//use number
console.log(event.data.number);
//use test
console.log(event.data.test);
});
В вашем примере передается нечто более сложное, чем "простая строка" - в вашем примере передается объект с одним свойством name
- нет причины, по которой это не может быть объект с 2 (или более) свойствами:
$(document).on('click', '#id',
{
number : functionThatGetTheNumberOfThePopup(),
test : captureTextOfPopup()
} ,
function(event){
//use number
//use test
});