如何通过.change触发器传递html元素引用

时间:2012-10-26 21:17:15

标签: jquery parameter-passing onchange eventtrigger

我有一个名为showStuff()的函数,我希望在init期间调用一次,并在select字段更改时再调用一次。我需要将一个类或id名称传递给函数,但这不起作用:

$('.filterChange').change($('#htmlElement'), showStuff);

我做错了什么?解决方法是在更改时调用泛型函数,然后调用showStuff(),但我不明白为什么更改触发器不起作用。与.bind触发器相同的问题。

2 个答案:

答案 0 :(得分:3)

以下是关于如何将数据传递给事件的基础:

function greet(event) { alert("Hello "+event.data.name); }
$("button").on("click", { name: "Karl" }, greet);
$("button").on("click", { name: "Addy" }, greet);

http://api.jquery.com/on/

答案 1 :(得分:3)

您应该将其作为Map传递,因为这是可接受的语法。

$('.filterChange').change({'myelement': $('#htmlElement')}, showStuff);

function showStuff(e) {
   $(e.data.myelement.show());
}

我认为你想要的是一个简单的内部函数,如下所示,

$('.filterChange').change(function () {
   showStuff($('#htmlElement'));
}).change(); //trigger during init or simply call showStuff($('#htmlElement'))