可能重复:
Passing parameters to click() & bind() event in jquery?
我有这段代码,
clickcount = 0;
function filter() {
$(this).siblings().unbind('click', filter);
$(this).siblings().css({opacity: '0.3'}, 800);
clickcount++;
if(clickcount == 2){
$(this).siblings().bind('click', filter);
$(this).siblings().css({opacity: '1'}, 800);
clickcount =0;
}
}
$('a.one').bind('click', filter);
$('a.two').bind('click', filter);
$('a.three').bind('click', filter);
我想要做的是,将参数传递给'过滤器'函数,这样我就可以动态传递数据。
例如,这就是我在PHP中的表现: -
function test(var) {
return $var;
}
echo test('this is a variable');
如何使用bind获得类似的结果?
答案 0 :(得分:1)
如bind()
documentation所示,bind()
的第二个参数可以是任意数据地图,可以使用event.data
function filter(e) {
// e.data.foo; etc
$(this).siblings().unbind('click', filter);
$(this).siblings().css({opacity: '0.3'}, 800);
clickcount++;
if(clickcount == 2){
$(this).siblings().bind('click', filter);
$(this).siblings().css({opacity: '1'}, 800);
clickcount =0;
}
}
$('a.one').bind('click', {
blah: 1,
foo: 2
}, filter);
或者,您可以这样做;
$('a.one').bind('click', buildFilter(1, 2, 3));
function buildFilter(argA, argB, argC) {
return function (e) {
// Use argA, argB and argC
$(this).siblings().unbind('click', filter);
$(this).siblings().css({opacity: '0.3'}, 800);
clickcount++;
if(clickcount == 2){
$(this).siblings().bind('click', filter);
$(this).siblings().css({opacity: '1'}, 800);
clickcount =0;
}
}
}
答案 1 :(得分:0)
为什么不呢
$('a.one').bind('click', function () {
filter(aaa, bbb);
});
答案 2 :(得分:0)
检查.bind()文档上的传递事件数据:
.bind( eventType [, eventData], handler(eventObject) )
示例:
var message = 'Spoon!';
$('#foo').bind('click', {msg: message}, function(event) {
alert(event.data.msg);
});
你可以这样做:
commentbtn.bind('click', { id: '12', name: 'Chuck Norris' }, function(event) {
var data = event.data;
alert(data.id);
alert(data.name);
});
查看Sstackoverflow上已有的thread以获取详细信息。
$(this).siblings().bind('click',{id:1, cost:20}, filter);
function filter(event)
{
alert(event.data.id);
}
答案 3 :(得分:0)
您应该能够将事件数据传递给函数调用
$('a.one').bind('click', {msg: message}, filter);
然后在您的过滤器函数中,您可以通过执行event.data.msg
来检索事件数据function filter () {
....
alert(event.data.msg);
}
查看绑定事件数据
上的jquery绑定文档