반응형
프로토 타입으로 이벤트 트리거
누구든지 jQuery의 트리거 함수로 할 수 있듯이 Prototype에서 이벤트를 트리거하는 방법을 알고 있습니까?
관찰 메서드를 사용하여 이벤트 리스너를 바인딩했지만 프로그래밍 방식으로 이벤트를 발생시킬 수도 있습니다.
미리 감사드립니다
event.simulate.js
귀하의 요구에 맞습니다.
나는 이것을 여러 번 사용했고 그것은 매력처럼 작동합니다. 다음 과 같이 클릭 또는 마우스 오버와 같은 네이티브 이벤트 를 수동으로 트리거 할 수 있습니다 .
$('foo').simulate('click');
이것에 대한 좋은 점은 마치 요소를 직접 클릭 한 것처럼 연결된 모든 이벤트 핸들러가 계속 실행된다는 것입니다.
를 들어 사용자 정의 이벤트 는 표준 프로토 타입 방법을 사용할 수 있습니다 Event.fire()
.
Prototype에 내장 된 것이 없다고 생각하지만 이것을 사용할 수 있습니다 (테스트되지는 않았지만 최소한 올바른 방향으로 안내해야 함).
Element.prototype.triggerEvent = function(eventName)
{
if (document.createEvent)
{
var evt = document.createEvent('HTMLEvents');
evt.initEvent(eventName, true, true);
return this.dispatchEvent(evt);
}
if (this.fireEvent)
return this.fireEvent('on' + eventName);
}
$('foo').triggerEvent('mouseover');
이 게시물이 도움이된다는 것을 알았습니다 ... http://jehiah.cz/archive/firing-javascript-events-properly
Firefox와 IE 모두에서 이벤트를 발생시키는 방법을 다룹니다.
function fireEvent(element,event){
if (document.createEventObject){
// dispatch for IE
var evt = document.createEventObject();
return element.fireEvent('on'+event,evt)
}
else{
// dispatch for firefox + others
var evt = document.createEvent("HTMLEvents");
evt.initEvent(event, true, true ); // event type,bubbling,cancelable
return !element.dispatchEvent(evt);
}
}
여기서 답변은 "일반"이벤트, 즉 사용자 에이전트에 의해 정의 된 이벤트에 해당되지만 사용자 지정 이벤트의 경우 프로토 타입의 "불"메서드를 사용해야합니다. 예 :
$('something').observe('my:custom', function() { alert('Custom'); });
.
.
$('something').fire('my:custom'); // This will cause the alert to display
참고 URL : https://stackoverflow.com/questions/460644/trigger-an-event-with-prototype
반응형
'Program Tip' 카테고리의 다른 글
C #에서 비동기 파일 복사 / 이동 (0) | 2020.12.01 |
---|---|
CouchDB에서 일반 사용자 만들기 (0) | 2020.12.01 |
django 템플릿 시스템, 모델 내부에서 함수 호출 (0) | 2020.11.30 |
Rails에서 before_filter 건너 뛰기 (0) | 2020.11.30 |
산발적으로 발생하는 버그를 어떻게 재현합니까? (0) | 2020.11.30 |