jQuery绑定事件与函数:以更好的方式将参数传递给用户函数?

时间:2016-03-03 09:51:09

标签: jquery function events parameter-passing

我想使用jQuery的click()使用带参数的函数绑定元素。然后我需要在某个时候直接调用该函数。这就是我目前正在做的事情:

function f1(e){
  f(e.data.a, e.data.b, e.data.c);
}

function f(a, b, c){
  //...
}
var a = 1, b = 2, c = 3;
$('#someElement').click({a: a, b: b, c: c}, f1); //bind function
f(a, b, c); //call directly

我觉得它很多,因为我有很多这样的功能。我相信有更好的方法来实现这一目标。非常感谢你。

2 个答案:

答案 0 :(得分:1)

您可以使用数据属性来获取您点击

的每个元素的参数

HTML

<div class="someElement" data-a="1" data-b="2" data-c="3"></div>
<div class="someElement" data-a="4" data-b="5" data-c="6"></div>

JS

function f(a, b, c) {
  alert(a + " " + b + " " + c);
}

$('.someElement').click(function() {
  var a = $(this).attr('data-a'),
    b = $(this).attr('data-b'),
    c = $(this).attr('data-c');
    f(a, b, c);
});

答案 1 :(得分:0)

我认为你可以像这样直接调用你的函数

var a = 1, b = 2, c = 3;
$('#someElement').bind("click",function(){
    f(a, b, c); //call directly
});