Sys.UI.DomEvent addHandler 메서드

이벤트를 노출하는 DOM 요소에 DOM 이벤트 처리기를 추가하기 위해 메서드를 제공합니다. 이 멤버는 정적 멤버이며 클래스의 인스턴스를 만들지 않고 호출할 수 있습니다.

Sys.UI.DomEvent.addHandler(element, eventName, handler, autoRemove);

용어

내용

element

이벤트를 노출하는 요소입니다.

eventName

이벤트의 이름입니다.

handler

이벤트가 발생하면 호출되는 클라이언트 함수입니다.

autoRemove

(선택 사항) 요소가 삭제되면 처리기가 자동으로 제거할지 여부를 결정하는 부울 값.

addHandler 메서드를 사용하면 이벤트를 노출하는 요소에 DOM 이벤트 처리기를 추가할 수 있습니다. eventName 매개 변수에는 "on" 접두사가 포함되면 안 됩니다. 예를 들어 "onclick" 대신 "click"을 지정해야 합니다.

참고참고

오류 이벤트에 addHandler 메서드를 사용하지 마십시오. 오류 이벤트에는 DOM 이벤트와 동일한 시그니처가 없으며 시그니처에 일관성이 없습니다. 따라서 오류 이벤트는 수동으로 바인딩해야 합니다.

$addHandler 바로 가기 메서드를 통해 이 메서드에 액세스할 수 있습니다.

다음 예제에서는 addHandler 메서드를 사용하여 이벤트 처리기를 요소와 연결하는 방법을 보여 줍니다.


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1" runat="server">
    <title>Example</title>
    <style type="text/css">
    #UpdatePanel1 { 
      width:300px; height:100px;
     }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server"/>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="False" UpdateMode="Conditional">
            <ContentTemplate>
                <asp:Panel ID="Panel1" runat="server" GroupingText="Update Panel">
                   <asp:Label ID="Label1" runat="server" Text="Click button to see event details."></asp:Label>
		           <br />
                   <asp:Button ID="Button1" runat="server" Text="Button" AccessKey="b"  />
		           <br />
                   <asp:Label ID="Label2" runat="server"></asp:Label>
                </asp:Panel>
            </ContentTemplate>
        </asp:UpdatePanel>
    </form>
</body>
</html>

<script type="text/javascript">
    Sys.UI.DomEvent.addHandler($get("Button1"), "click", processEventInfo);
    var myArray = ['altKey', 'button', 'charCode', 'clientX', 'clientY',
                   'ctrlKey', 'offsetX', 'offsetY', 'screenX', 'screenY', 
                   'shiftKey', 'target', 'type'];

    function processEventInfo(eventElement) {
        var result = '';
        for (var i = 0, l = myArray.length; i < l; i++) {
            var arrayVal = myArray[i];
            if (typeof(arrayVal) !== 'undefined') {
                // Example: eventElement.clientX
                result += arrayVal + " = " + eval("eventElement." + arrayVal) + '<br/>';
            }
        }
        $get('Label2').innerHTML = result;
    }
 </script>


표시: