我有多个元素要为(开关 - 案例样式)定义一个函数......就像这样:
$("#s1, #s2").hover({param: *specific selector name*}, switchFunc);
function switchFunc(event) {
switch (event) {
case "#s1": do something;
break;
case "#s2": do something else;
break;
}
}
我能以某种方式这样做吗?
答案 0 :(得分:2)
您不需要为此定义单独的参数,您只需使用$(this)
来引用触发事件的元素,或this.id
来查看它ID,并根据处理程序中的内容做出决定:
$("#s1, #s2").hover(switchFunc);
function switchFunc() {
switch (this.id) {
case "s1": // do something
break;
case "s2": // do something else
break;
}
}
如果您希望将其与选择器进行比较,请使用$(this).is(selector)
:
function switchFunc() {
if ($(this).is("#s1")) {
// do something
} else if ($(this).is("#s2")) {
// do something else
}
}
请记住,绑定到悬停会使事件触发两次:一次用于mouseenter,一次用于mouseleave。要让它只触发一次,绑定到所需的鼠标事件。