Skip to content Skip to sidebar Skip to footer

Combining $('body').on('click') With $(window).resize(function() In JQuery

Wondering if there is a way to combine identical code of 2 separate functions into 1 function. In my case: jQuery('body').on('click', '.some_div', function (e) { // Long and fa

Solution 1:

You can define a single function which you call under both events:

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

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

Bear in mind that the reference to this will be different depending on the event raised, should that be used within your doSomething function.


Solution 2:

You can create a function to handler both the events and pass this function reference to the event handlers.

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

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

jQuery(window).resize(myHandler);

Solution 3:

There's another way to do that.

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

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

Solution 4:

create a separate function and call it from required locations:

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


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

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

Post a Comment for "Combining $('body').on('click') With $(window).resize(function() In JQuery"