2012-01-18 3 views
1

계산기와 같은 대화 상자를 만들면 IE에서 버튼을 빠르게 클릭하면 이 표시되지 않음 클릭 이벤트가 두 번 발생합니다 (Chrome/FF가 예상대로 작동 함).) 대신 오히려 click 이벤트를 두 번 클릭 한 다음 두 번 클릭 이벤트를 발생시킵니다. 몇 가지 간단한 코드와 실험, 나는 기본적으로이 동작을 복제 할 :ExtJS/Script # - 버튼에 더블 클릭 이벤트 추가

<script language=javascript> 
function minus(num) 
{ 
    var i = document.getElementById('0001'); 
    if (i.value > 1) 
    { 
    i.value -= num; 
    return true; 
    } 
} 
</script> 

<input type="button" onclick="minus(1);" ondblclick="minus(1);" value="minus"> 
<input type="text" id="0001" name="0001" value=10> 

내가 ExtJS에 3.1에서이 작업을 수행 할 필요가 있지만, 나의 노력은 좌절되었다. 내가 시도한 코드는 다음과 같다.

Button btn = new Ext.Button(new ButtonConfig() 
          .text(text) 
      .tooltip(tooltip) 
          .tooltipType("title") 
          .scope(this) 
          .handler(delgateFunction) 
          .x(x) 
          .y(y) 
          .tabIndex(_tabIndex++) 
          .width(width).height(height) 
          .ToDictionary()); 
btn.addListener("mouseenter", new EventHandler(mouseHandler)); 
btn.addListener("mouseover", new EventHandler(mouseHandler)); 
btn.addListener("mouseout", new EventHandler(mouseLeave)); 
if (Ext.isIE) 
{ 
    //btn.on("dblclick", new EventHandler(DoubleClick)); 
    //btn.addListener("dblclick", new EventHandler(DoubleClick)); 
    //btn.addListener("ondblclick", new EventHandler(DoubleClick)); 
} 

그 세 줄 중 아무 것도 작동하지 않는 것 같습니다. 어떤 제안?

답변

0

씨 Zhu의 정답를 알려준 :

Events.AddEvent(_zeroBtn.getEl().dom, "dblclick", DoubleClickZero); 
0

버튼이 렌더링 된 후 다음 사항을 확인하시기 바랍니다

btn.el.on("dblclick", new EventHandler(DoubleClick)); 

Ext.Button 자체가 아니라 "dblclick"이벤트 (API를 확인)의 기본 엘 (Ext.Element)를 가지고있다.

전체 샘플 :

new Ext.Button({id:'btn', text:'dblclick', renderTo:Ext.getBody() }); 
Ext.getCmp('btn').el.on('dblclick', function(){alert('db click');}); 
+0

그렇진 -하지만 그것은 옳은 길에 저를 넣어 - 너무 감사합니다. ;' 다시 한번 감사 'Events.AddEvent (. _zeroBtn.getEl() DOM, "dblclick"DoubleClickZero) : 내가 찾은 해결책이되었다. –

+0

스크립트 # (JavaScript로 변환 된 C# 코드)를 사용하고 있습니다. 다시 한번 감사드립니다. –

관련 문제