2012-01-18 9 views
1

電卓のようなダイアログを作成すると、IEのボタンをすばやくクリックすると、は表示されません。は、 )、むしろ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)); 
} 

これらの3行はどれも動作していないようです。助言がありますか?

答えて

0

朱氏は、正しい答えに私を導いた:

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

私はScript#(JavaScriptに変換されたC#コード)を使用しています。再度、感謝します。 –

関連する問題