jquery .on()通过函数传递数据

时间:2013-11-28 16:24:43

标签: jquery 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 个答案:

答案 0 :(得分: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);
});

答案 1 :(得分:0)

你的例子 传递比“简单字符串”更复杂的东西 - 你的例子传递一个具有一个属性name的对象 - 没有理由这不是一个对象具有2个(或更多)属性:

$(document).on('click', '#id', 
{
    number : functionThatGetTheNumberOfThePopup(),
    test : captureTextOfPopup()
} , 
function(event){
//use number
//use test
});