dojo1.8 - 需要on.pausable(fire,'change',function())来触发select toggleDropdown和focus方法

时间:2014-03-21 04:02:45

标签: dojo

您好我有问题并且错误说明: - "错误:目标必须是事件发射器。" 如果fire变量发生了变化并且selectHandler被恢复,那么不应该触发方法 - toggleDropDown和focus?

以下是我的代码: -

var fire = false;
var toggle1, toggle2 = true;

var select = new Select
({
    store:storeA
}, 'node_Select');
select.startup();
fire = true;

var switchStore = new button 
({
    onClick: function()
    {if (toggle1)
        {
           select.setStore(storeB);
           toggle1 = false;
        }
    else
        {
           select.setStore(storeA);
           toggle1 = true;
        }
    fire = true;
    }
}, 'node_switchStore');
switchStore.startup();

var selectHandler = on.pausable(fire, 'change' function()
{
    if(fire)
        {
             select.toggleDropDown();
             select.focus();
             fire=false;
        }
})

var switchPause = new button
({
    onClick: function()
   {if (toggle2)
        {
           selectHandler.resume();
           toggle2 = false;
        }
    else
        {
           selectHandler.pause();
           toggle2 = true;
        }
    }
}, 'node_switchPause');
switchPause.startup();

什么是事件发射器?只输入更改,按钮和DOM元素'事件? 似乎火变量不是事件发射器,不是吗? 请指教 克莱门特

1 个答案:

答案 0 :(得分:0)

这与这一行有关:

var selectHandler = on.pausable(fire, 'change' function()

你正试图听一种javascripts原始类型,布尔值。为了" dojo / on"要工作,它必须听取可以触发事件的事情。根据我在您的代码示例中看到的内容,您可能需要的是一个处理" fire"变量。这样的事情怎么样:

var openFire = function() {
    select.toggleDropDown();
    select.focus();
    fire = false;
}

现在而不是设置

fire=true;

你可以打电话

openFire();