Javascript 组合$(';body';)。在(';上单击';)和$(window)。调整jQuery中的(函数()大小

Javascript 组合$(';body';)。在(';上单击';)和$(window)。调整jQuery中的(函数()大小,javascript,jquery,Javascript,Jquery,想知道是否有办法将两个独立函数的相同代码组合成一个函数 就我而言: jQuery('body').on('click', '.some_div', function (e) { // Long and fancy code }); jQuery(window).resize(function () { // Do the same fancy stuff (identical code) }); 您可以创建一个函数来处理这两个事件,并将此函数引用传递给事件处理程序 funct

想知道是否有办法将两个独立函数的相同代码组合成一个函数

就我而言:

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

jQuery(window).resize(function () {
    // Do the same fancy stuff (identical code)
});

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

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

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

jQuery(window).resize(myHandler);

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

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

jQuery('body').on('click', '.some_div', doSomething);
jQuery(window).resize(doSomething);

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

创建一个单独的函数,并从所需位置调用它:

jQuery('body').on('click', '.some_div', function(e){
    myFunction();
});


jQuery(window).resize(function() {
    myFunction();
});

function myFunction(){
   // Long and fancy code
}

还有另一种方法

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

jQuery(window).resize(function () {
    $('.some_div').trigger('click')
});

还要记住,resize函数可能会减慢客户端的brwoser/make resizeing laggy laggy,请参阅有关如何防止这种情况的参考。@Tushar是的,你明白了。为什么要用一个不起任何作用的匿名函数包装对myFunction的调用?你可以直接传递myFunction。这是非常正确的@Racheet。。。!