将$('body').on('click')与$(window).resize(jQuery中的function())相结合

Nik*_*a 웃 8 javascript jquery

想知道是否有办法将2个独立功能的相同代码组合成1个功能.

就我而言:

jQuery('body').on('click', '.some_div', function (e) {
    // Long and fancy code
});

jQuery(window).resize(function () {
    // Do the same fancy stuff (identical code)
});
Run Code Online (Sandbox Code Playgroud)

Ror*_*san 15

您可以定义在两个事件下调用的单个函数:

function doSomething(e) {
    console.log('Your code here...');
}

jQuery('body').on('click', '.some_div', doSomething);
jQuery(window).resize(doSomething);
Run Code Online (Sandbox Code Playgroud)

请记住this,如果在您的doSomething函数中使用,引用将根据引发的事件而有所不同.


Tus*_*har 5

您可以创建一个函数来处理这两个事件,并将此函数引用传递给事件处理程序.

function myHandler(e) {
    // Long and fancy code
}

jQuery('body').on('click', '.some_div', myHandler);

jQuery(window).resize(myHandler);
Run Code Online (Sandbox Code Playgroud)