Javascript dojotoolkit中的DOM更新稍有延迟

Javascript dojotoolkit中的DOM更新稍有延迟,javascript,dom,dojo,dojox.mobile,Javascript,Dom,Dojo,Dojox.mobile,我有一个dojox.mobile.IconMenu,上面有6个dojox.mobile.IconMenu项。 当我按下图标菜单项时,按钮应该被按下。我通过在正确的时间切换按钮的图像来实现这一行为 下面是出现的问题: 在桌面上(Chrome):当我点击按钮时,视图变化如此之快,以至于你看不到新的、按下的图形!我必须按住按钮约半秒钟,然后松开它,直到按钮显示新图像 在Android/iOS设备上(经过测试:Chrome、Firefox、Opera、Skyfire、Board Browser、Dolp

我有一个dojox.mobile.IconMenu,上面有6个dojox.mobile.IconMenu项。 当我按下图标菜单项时,按钮应该被按下。我通过在正确的时间切换按钮的图像来实现这一行为

下面是出现的问题:

在桌面上(Chrome):当我点击按钮时,视图变化如此之快,以至于你看不到新的、按下的图形!我必须按住按钮约半秒钟,然后松开它,直到按钮显示新图像

在Android/iOS设备上(经过测试:Chrome、Firefox、Opera、Skyfire、Board Browser、Dolphin、Safari):按钮会更改图像,但我看不到更改,因为图形更改太慢

下面是代码(html)


首先,您的标记中没有错误吗?我看到onmousedown和onmousedown,那不是onmousedown/onmousedup吗

但是,我认为您应该使用dojo/touch并收听touch.press/release,而不是mousedown/up。这将确保您收听的是触摸或鼠标,具体取决于设备

或者,您可以查看项目的“选定”状态,并在选择项目时更改图标?比如:

item.watch("selected", function(){
    this.set("icon", this.selected?"selected.png":"deselected.png");
});
然后,要使项目保持选中状态一段时间,可以设置_selEndMethod=“timer”。如果您愿意,您还可以更改_持续时间(默认值为800,您可能需要稍微短一点?)

// press button1
// press button1
function toggleImg1(){  
    portalButton1.set("icon", "../deliverables_800x480/buttons/portal/btn_portal_freetext_big_armed.gif");
}
function toggleView1() {   
    portalButton1.set("moveTo", "messaging");
    portalButton1.set("selected", true);
    portalButton1.set("icon", "../deliverables_800x480/buttons/portal/btn_portal_freetext_big_normal.gif");

}
item.watch("selected", function(){
    this.set("icon", this.selected?"selected.png":"deselected.png");
});