我们说我有以下代码:
$('#from').focus(listExpand(1));
$('#to').focus(listExpand(3));
它没有像我预期的那样工作。我认为它是错误的,因为我传递的是函数结果而不是函数本身。
所以正确的语法是:
$('#from').focus(listExpand); // no brackets and no parameters
但在这种情况下,我无法将任何参数传递给函数:(
如何实施主题?
答案 0 :(得分:5)
会起作用。用这个。
$('#from').focus(function() {listExpand(1) });
$('#to').focus(function(){listExpand(3);})
我发现@sudher也提到了其他很酷的方式。您可以在http://jsfiddle.net/kvHDA/
中查看它示例代码
$('#from').focus({x: 1},myfunc);
function myfunc( e){
alert(e.data.x);
}
答案 1 :(得分:5)
在单独的函数定义中包含对listExpand
的调用:
$('#from').focus(function(){ listExpand(1); });
$('#to').focus(function(){ listExpand(3); })
答案 2 :(得分:3)
如果向.on()提供了数据参数,并且该参数不为null或未定义, 它每次都传递给 event.data 属性中的处理程序 触发事件。
$('#from').on("focus" , {id:1} , listExpand);
$('#to').on("focus" , {id:3} , listExpand);
function listExpand(event){
console.log(event.data.id);
}