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
});
Другие вопросы по тегам