2012-01-18 58 views
1

创建一个类似计算器的对话框,我注意到,快速点击IE中的按钮将而不是两次点击事件(Chrome/FF按预期工作),而是抛出click事件,然后是双击事件。用一些简单的代码尝试,我基本上是想复制这种行为:ExtJS /脚本# - 添加一个双击事件到按钮

<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

朱先生带领我到正确的答案:

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

尝试按钮之后被渲染如下:

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

Ext.Button本身不是 “DBLCLICK” 事件(查看API),而其潜在的EL(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#(将C#代码转换为JavaScript)。再次感谢。 –