2017-03-22 2 views
0

나는 이것을 읽었다. : https://developer.mozilla.org/en-US/docs/Web/API/Document/createEvent 그리고 더 오래된 버전에서 그들은 더 오래된 방법을 제시 할 때 약간의 세부 사항을 생략한다.새 MouseEvent를 만드는 데 얼마나 오래된 방법이 사용됩니까?

나는 특정 코드를 가지고 : 일부 환경에서 제대로 실행되지

HTMLElement.prototype.mouseDownLeftButton = function() { 
    var event = new MouseEvent('mousedown', 
    { 
     'which': 1, 
     'view': window, 
     'bubbles': true, 
     'cancelable': true 
    }); 
    this.dispatchEvent(event); 
}; 

. 따라서 나는 구식 방법으로 버전 썼다 :

HTMLElement.prototype.mouseDownLeftButton = function() { 
    var event = document.createEvent("MouseEvent"); 
    event.initEvent("mousedown", true, false); 
    event.setAttribute("which", 1);//how to do it correctly? 
    event.setAttribute("view", window);//how to do it correctly? 
    this.dispatchEvent(event); 
}; 

을하지만 불행히도 나는 TypeError: event.setAttribute is not a function

질문을 얻을 : 제대로 오래된 방식으로 window1-whichview을 설정하는 방법? which: 1을 명확히하기 위해 왼쪽 마우스 버튼이 "내려졌습니다"라고 말합니다.

답변

1

당신은 event.currentTarget.setAttribute를 사용하고

1 - Left 
2 - Middle 
3 - Right 

JS

HTMLElement.prototype.mouseDownLeftButton = function() { 
    var event = document.createEvent("MouseEvent"); 
    event.initEvent("mousedown", true, false); 
    event.setAttribute("which", event.which);//how to do it correctly? 
    event.setAttribute("view", window);//how to do it correctly? 
    this.dispatchEvent(event); 
}; 
+0

감사합니다 감지 단지 event.which 속성을 사용해야합니다,하지만 난 얻을 :'null'의 재산 '의 setAttribute'을 읽을 수 없습니다. – Yoda

+0

@Yoda 이벤트를 무언가에 첨부 했습니까? –

+0

그래,'event.which'와'event.view'가 막 도움이되었습니다. 하지만 다른 환경을 점검해야합니다. – Yoda