Copying jQuery events from one element to another

I dug around for way too long today trying to figure out how to copy jQuery event handlers from one element to another.

I finally found the solution..

    function copyEvents(source, target) {
        var evs = $._data(source[0], 'events');  
        for (var ev in evs) {
            for (var i = 0; i < evs[ev].length; i++)
                $.fn[ev].apply(target, [evs[ev][i].handler]);
        }
    }

I’ve left a demo here -> http://jsfiddle.net/mtranter/gJXaR/4/

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s