jQuery On()eventHandler参数作为带参数的函数名

时间:2013-04-26 14:20:15

标签: jquery

来自jQuery网站:

.on( events [, selector ] [, data ], handler(eventObject) )

如何编写正确的代码以将参数从ON方法传递给事件处理函数函数...

我想要一个这样的代码:

myfunc =function(obj){
$(this).after("<p>Another paragraph! "+obj+"</p>");
}

var count = 0;
$("body").on("click", "p",myfunc(++count) );

enter image description here

2 个答案:

答案 0 :(得分:4)

myfunc =function(event){
    $(this).after("<p>Another paragraph! "+event.data+"</p>");
}

$("body").on("click", "p", ++count, myfunc);

您发送的数据将被插入到事件对象中:

  

数据

     

触发事件时要传递给event.data中的处理程序的数据。

docs

答案 1 :(得分:3)

假设您打算在每次点击时增加计数:

var count = 0;
$("body").on("click", "p",function(){
    $(this).after("<p>Another paragraph! " + (++count) + "</p>");
});

修改,如果您希望将功能分开并且不想更改它,则可以执行以下操作:

myfunc = function(obj){
    $(this).after("<p>Another paragraph! "+obj+"</p>");
}

var count = 0;
$("body").on("click", "p",function(){
    myfunc.call(this, ++count);
});

http://jsfiddle.net/Bwk3W/