programing

jquery가없는 jquery의 'trigger'메소드와 동등한 것은 무엇입니까?

copyandpastes 2021. 1. 15. 20:16
반응형

jquery가없는 jquery의 'trigger'메소드와 동등한 것은 무엇입니까?


jQuery가trigger 없는 jQuery방법에 해당하는 것은 무엇 입니까?

예를 들어, jQuery$('.blah').trigger('click'); 없이 어떻게해야 합니까?


"매우 조잡한 등가물"의 일부 값 :

var button = document.getElementById("thebutton")
button.click()

모든 브라우저 (예 : Firefox!)가 이러한 방식으로 시뮬레이션 된 이벤트를 허용하는 것은 아닙니다! 사용 onclick()이벤트가 인라인 등의 경우에만 것은 작동

jQuery 소스를 보고 "trigger :"(첫 번째 일치)를 검색하여 "작동하도록 만들기"를 위해 수행 된 모든 icky 작업을 확인하십시오 (그 중 좋은 부분은 jQuery 내부를 둘러싼 것 뿐이며 다른 프레임 워크에는 훨씬 더 간단한 예제가 있습니다.) ).

즐거운 코딩입니다.


event.initMouseEvent ( "클릭"...

다음은 그 예입니다.

function simulateClick(elId) {
    var evt;
    var el = document.getElementById(elId);
    if (document.createEvent) {
        evt = document.createEvent("MouseEvents");
        evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    }
    (evt) ? el.dispatchEvent(evt) : (el.click && el.click());
}

var foo = document.getElementById("hey");

foo.onclick = function () {alert("bar");}

simulateClick("hey");

자바 스크립트

var event = document.createEvent("Event");
event.initEvent("click", false, true); 
document.getElementById("blah").dispatchEvent(event);

아래와 같이 jQuery 트리거와 동일합니다.

$('#blah').trigger('click');

여기 제 예가 있습니다. 모든 상황에서 완벽하게 작동

var d=document.createEvent("MouseEvents"),
    c=document.createEvent("MouseEvents"),
    p=document.createEvent("MouseEvents");
    d.initMouseEvent("mousedown",true,true,window,0,0,0,0,0,false,false,false,false,0,null);
    c.initMouseEvent("click"    ,true,true,window,0,0,0,0,0,false,false,false,false,0,null);
    p.initMouseEvent("mouseup"  ,true,true,window,0,0,0,0,0,false,false,false,false,0,null);

    var element =// some selector;

    element.dispatchEvent(d);
    element.dispatchEvent(c);
    element.dispatchEvent(p);

참조 URL : https://stackoverflow.com/questions/5658849/whats-the-equivalent-of-jquerys-trigger-method-without-jquery

반응형