2011-10-12 5 views
2

도서관에 글을 쓰고 있습니다. 이미 onchange 이벤트를 사용하고있는 다른 페이지에 포함하고 싶습니다. 원래 이벤트를 제거하지 않고 내 이벤트를 onchange에 첨부 할 수있는 방법이 있습니까?원본 기능을 방해하지 않고 onchange 이벤트를 도용

편집 :

onchange obj. 단 하나 성분 - URL에있는 해시 변화에서 것과 같이 onchange 같이 onchange. 나가 그들을 혼동하면 미안!

답변

7

내가 맞으면 기존 이벤트에 새 코드를 삽입하려는 것 같습니다. 순수한 자바 스크립트 솔루션을 원한다면 도움이 될 것입니다. 여기에 기능을 보여주는 바이올린이 있습니다. http://jsfiddle.net/VZCve/1/

var element = document.getElementById("myElementId"); 

element.onchange = (function (onchange) { 
    return function(evt) { 
    // reference to event to pass argument properly 
    evt = evt || event; 

    // if an existing event already existed then execute it. 
    if (onchange) { 
     onchange(evt); 
    } 

    // new code "injection" 
    alert("hello2"); 
    } 
})(element.onchange); 

편집 : 지금 태그가 변경되는 것을 당신이 당신의 질문에 참조 jQuery를하다

jQuery를이 다음과 같은 모든 변화를 실행합니다 jQuery.change().

노트를 사용하여 새로운 기능을 결합하는 것입니다

할당 된 기능

$(document).ready(function() { 
    $("#myElement").change(function() { alert('executed') }); 
    $("#myElement").change(function() { alert('executed again') }); 
    $("#myElement").change(function() { alert('executed again again') }); 
}); 

y selector에서 요소에 대한 change 이벤트를 트리거하면 3 개의 경고가 수신됩니다.

이벤트 발사 순서는 각 기능이 요소에 바인딩 된 순서에 따라 달라집니다. 여기

http://jsfiddle.net/VZCve/

2

jQuery의 .change() 함수를 사용하여 onchange 처리기를 할당하면 기존 onchange 이벤트 (또는 기타 jQuery 할당 처리기)가 무시되지 않습니다. 여기에서 작업 데모보기 : http://jsfiddle.net/nrabinowitz/EyKdm/

0

최신 브라우저가 jQuery를의 기능을 설명하는 간단한 바이올린 인 addEventListener 그것을 할 수 있지만 dean.edwards 솔루션은 더 나은

는 이전 버전의 브라우저와 호환성입니다 수있는

당신이 할 수 또한 costem eventhandeler (s) whitch 함수의 호출 배열을 사용합니다 (제대로 수행하면 서브 함수의 return 값을 처리하여 다음 함수를 실행할지 여부를 결정할 수 있습니다. event

if(typeof element.onclickfunctions == "undefined"){ 
    element.onclickfunctions = []; 
} 
element.onclickfunctions.push(function(event){return Myfunct(event);});//or var 
element.onclick = function(event){ 
    for(x in element.onclickfuncitons){ 
    if(! x(event)){ 
     break; 
    } 
    } 
}; 

코드들 downvote

전에 언급하시기 바랍니다 테스트하지
관련 문제