| 814 | } |
| 815 | |
| 816 | function cloneCopyEvent(src, dest) { |
| 817 | var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; |
| 818 | |
| 819 | if (dest.nodeType !== 1) { |
| 820 | return; |
| 821 | } |
| 822 | |
| 823 | // 1. Copy private data: events, handlers, etc. |
| 824 | if (data_priv.hasData(src)) { |
| 825 | pdataOld = data_priv.access(src); |
| 826 | pdataCur = data_priv.set(dest, pdataOld); |
| 827 | events = pdataOld.events; |
| 828 | |
| 829 | if (events) { |
| 830 | delete pdataCur.handle; |
| 831 | pdataCur.events = {}; |
| 832 | |
| 833 | for (type in events) { |
| 834 | for (i = 0, l = events[type].length; i < l; i++) { |
| 835 | jQuery.event.add(dest, type, events[type][i]); |
| 836 | } |
| 837 | } |
| 838 | } |
| 839 | } |
| 840 | |
| 841 | // 2. Copy user data |
| 842 | if (data_user.hasData(src)) { |
| 843 | udataOld = data_user.access(src); |
| 844 | udataCur = jQuery.extend({}, udataOld); |
| 845 | |
| 846 | data_user.set(dest, udataCur); |
| 847 | } |
| 848 | } |
| 849 | |
| 850 | |
| 851 | function getAll(context, tag) { |