это не функция на додзе.готов (dojo 1.7 related)
Я развиваюсь с помощью dojo 1.7 и получаю ошибку.. Моя цель состоит в том, чтобы переместить элементы из одного мульти-окна выбора в другое. Страница длинная, поэтому я скопировал только соответствующие части.
Вот мой головной код js, и проблема приходит после dojo.готовый. Переменная "newStore" отлично работает, поэтому я знаю, что она работает нормально. это додзе.запрос ("кнопка.switch"), похоже, это проблема. Ошибка firebug, которую я получаю, -
dojo.query("button.switch").connect is not a function
И эта ошибка выбрасывается при загрузке страницы. Код является....
<script type="text/javascript">
require(["dijit/dijit"]);
require(["dojo/parser"]);
require(["dijit/layout/BorderContainer"]);
require(["dijit/layout/ContentPane"]);
require(["dijit/layout/AccordionContainer"]);
require(["dijit/layout/TabContainer"]);
require(["dijit/form/CheckBox"]);
require(["dijit/form/Button"]);
require(["dijit/form/ComboBox"]);
require(["dijit/form/NumberTextBox"]);
require(["dijit/form/SimpleTextarea"]);
require(["dijit/form/TextBox"]);
require(["dijit/form/Textarea"]);
require(["dijit/form/MultiSelect"]);
require(["clipart/ArrowLeft"]);
require(["clipart/ArrowRight"]);
require(["dijit/form/FilteringSelect"]);
require(["dijit/form/RadioButton"]);
require(["dijit/form/Select"]);
require(["dojox/layout/GridContainer"]);
require(["dojo/data/ItemFileReadStore"]);
require(["dijit/Tree"]);
require(["dojo/ready"]);
dojo.ready(function(){
var newStore = new dojo.data.ItemFileReadStore({
url: "http://0:3000/sample/sample_name"
});
dijit.byId('sc_sample_name').set('store',newStore);
dojo.query("button.switch")
.connect("onclick",function(e){
switch(e.target.id.toString()){
case "left" : dijit.byId("at2").addSelected(dijit.byId("at1")); break;
case "right" : dijit.byId("at1").addSelected(dijit.byId("at2")); break;
}
});
});
</script>
Это проблема загрузки страницы, поэтому я не включаю HTML (который огромен). Кто-нибудь видел такое поведение раньше? Джейни
1 ответ:
Я думаю, что вы загружаете безосновательное додзе , т. е.
dojoConfig
/data-dojo-config
имеет опциюasync:true
, которая переключает Dojo в режим baseless начиная с версии 1.7.Используйте
query("button.switch").on("click", function(e) { ...})
вместоconnect
:require([ "dojo/ready", "dojo/query" ], function( ready, query ) { ready(function() { query("button.switch").on("click", function(e) { console.log(e.target.id); }); }); });
Или не переключаться в безосновательный режим.
Попробуйте сами в этом jsFiddle: http://jsfiddle.net/phusick/LMdBd/, измените
async: true
наasync: false
или удалите его полностью иconnect
будет работать: