이벤트를 복사하기위한 jQuery 플러그인을 작성했습니다. 그러나 동적으로 추가 된 이벤트에서만 작동하지만 "on"기능으로 추가 된 이벤트에서는 작동하지 않습니다.
누군가에게 도움이되기를 바랍니다.
매개 변수 :
이벤트 유형 - "클릭", "마우스 오버"등
대상 - jQuery를 객체, DOM 요소 나 선택 중 하나
clearCurrent - 그것은 목적지에 현재의 핸들러를 취소 할 경우는 true - 기본값 false
(function($){
$.fn.copyEventTo = function(eventType, destination, clearCurrent) {
var events = [];
this.each(function(){
var allEvents = jQuery._data(this, "events");
if (typeof allEvents === "object") {
var thoseEvents = allEvents[eventType];
if (typeof thoseEvents === "object") {
for (var i = 0; i<thoseEvents.length; i++){
events.push(allEvents[eventType][i].handler);
}
}
}
});
if (typeof destination === "string") {
destination = $(destination);
} else if (typeof destination === "object") {
if (typeof destination.tagName === "string") {
destination = $(destination);
}
}
if (clearCurrent === true) destination.off(eventType);
destination.each(function(){
for(var i = 0; i<events.length; i++) {
destination.bind(eventType, events[i]);
}
});
return this;
}
})(jQuery);
정확히 무엇을하려는가요? 위와 같이 속성을 복사해도 작동하지 않아도되는 이유는 없습니다. 그것이 무엇이든하기를 기대하는 것은 완전히 다른 이야기입니다. 또한 인라인 핸들러를 피해야합니다. –
어떤 시점에서 양식에있는 요소의 모든 클릭 이벤트를 사용하지 않으려 고하고 다른 속성 이름과 함께 해당 onclick을 저장하려고 할 때 다른 지점에서 복구해야합니다. – rahul
제공된 접근 방식을 사용하여 시도해 보셨나요? 예로서? –