2012-01-18 2 views
1

Создание диалогового окна с калькулятором, я заметил, что быстрый щелчок по кнопке в IE будет не дважды запустить событие click (работа 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

г-н Чжу привел меня к правильному ответу:

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

попробуйте следующее после отпускания кнопки визуализируется:

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

сам Ext.Button имеет не «DblClick» событие (проверьте АНИ) в то время как его основной эль (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() дом, "DblClick", DoubleClickZero.);' Еще раз спасибо. –

+0

Я использую Script # (код C#, преобразованный в JavaScript). Еще раз спасибо. –

Смежные вопросы