将多个事件绑定到同一个函数

时间:2013-07-02 12:11:35

标签: jquery mouseevent jquery-on touch-event

如何将多个事件绑定到同一个函数。我想点击和触摸开始做同样的事情。然后我想要一个鼠标悬停的第二个功能。我想使用这种设置:

    $(document).on({
        click: function (event) {
        // I want this: click, touchstart: function (event) {
            event.preventDefault();
            // do something         
        },
        mouseover: function (event) {
            event.preventDefault();
            // do something         
        }
    }, '.link');

3 个答案:

答案 0 :(得分:2)

您可以将一个.on()中的事件与空间结合起来:

$(document).on('click touchstart', function(e) {
    // this will be called on click as well as touchstart
});

答案 1 :(得分:1)

没有理由不能调用外部函数:

function myExternalFunction (event) {
    // do stuff
}

$(document).on({
    click: myExternalFunction,
    mouseover: myExternalFunction
}, '.link');

答案 2 :(得分:0)

根据the .on() documentation(并通过快速查看.on()实施确认),您可以执行此操作:

$(document).on({
    "click touchstart" : function (event) {
        event.preventDefault();
        // do something         
    },
    mouseover: function (event) {
        event.preventDefault();
        // do something         
    }
}, '.link');

演示:http://jsfiddle.net/XzkTm/