/ / Dojo Toolkit 1.8.3 Мобилни доджо / на Handler Събития Превключвам Widget - javascript, html, събития, мобилни, доджо

Dojo Toolkit 1.8.3 Мобилен доджо / Handler Event Switch Widget - javascript, html, събития, мобилни, доджо

Опитвам се да създам основен манипулатор за събитиеdojox.mobile.Switch приспособление с помощта на onStateChanged събитие. Използвам дожо / модул за събития, свързани с новата архитектура на AMD и трудно ми се налага да го слушам.

Ето HTML за превключващия притурка с id = mobileView

    <li data-dojo-type="dojox.mobile.ListItem" data-dojo-props="icon:"../../app/images/i-      icon-1.png"">
Mobile Version
<div id="mobileView" class="mblItemSwitch" data-dojo-type="dojox.mobile.Switch"></div>
</li>

Ето кодовия код на JS. Второто изискване е да се справим с промяната.

    require(["dojox/mobile/parser", "dojox/mobile", "dojox/mobile/deviceTheme","dojox/mobile/compat", "dojo/domReady!"],
function(parser) {
parser.parse();
});

require(["dojo/on", "dijit/dijit"],
function(on){
on(dijit.byId("mobileView"),
"onStateChanged",
function(newState){
alert(newState);
});
});
</script>

Виждам, че се свързва с джаджаизползване на dijit.byId, слушане на събитието onStateChanged и извикване на предишната функция, след като състоянието се промени. Мисля, че има нещо общо с наличието на правилните модули, включени в изискването, но не съм много сигурен. Прекарах часове на това и се опитах много различни методи, включително стария начин на dojo.connect.

Всяка помощ / съвети ще бъде много оценявам!

Справка: доджо / на Dojo Toolkit dojo / on

Отговори:

1 за отговор № 1

В по-старите версии на доджото, dojo.connect() обработват и двата събития на DOM (кликнете, фокусирайте и т.н.) и функционални повиквания на джаджа.

Въпреки това, по-новите dojo/on модул обработва DOM събития и dojo/aspect модул обработва функционални повиквания. Switch.onStateChanged () е функция, а не DOM събитие, така че искате нещо подобно:

require(["dojo/aspect", "dijit/registry"], function(aspect, registry) {
aspect.after(registry.byId("mobileView"), "onStateChanged",
function(newState){
alert(newState);
}
);
});

виждам http://dojotoolkit.org/reference-guide/1.8/dojo/connect.html за повече информация.