У меня есть сайт dojox.mobile, который имеет общий вид. Я хотел бы повторно использовать представление для нескольких «кнопок» и вызвать функцию, которая изменяет метку заголовка представления в зависимости от того, какая кнопка была нажата. Однако, когда я меняю innerHTML, кнопка назад исчезает. Когда я использую функцию setattr, метка не изменяется. Каков правильный способ справиться с этим?Изменение атрибута метки Dojox.Mobile.Heading
</ссылка> -> Demo Эта проблема
<div id="MainMenu" data-dojo-type="dojox.mobile.View" data-dojo-props="selected: true" style="width: 100%; height: 100%;">
<h1 data-dojo-type="dojox.mobile.Heading">View A</h1>
<h2 dojoType="dojox.mobile.RoundRectCategory">Select a View</h2>
<ul data-dojo-type="dojox.mobile.RoundRectList">
<li data-dojo-type="dojox.mobile.ListItem" data-dojo-props="rightText:'Go!', moveTo: 'generic_view_x', callback:SetupViewA">
View A
</li>
<li data-dojo-type="dojox.mobile.ListItem" data-dojo-props="rightText:'Go!', moveTo: 'generic_view_x', callback:SetupViewB">
View B
</li>
</ul>
</div>
<div id="generic_view_x" data-dojo-type="dojox.mobile.View" style="width: 100%; height: 100%;">
<h1 id="view_x_header" data-dojo-type="dojox.mobile.Heading" data-dojo-props="back:'Main', moveTo:'MainMenu',label:'test'"></h1>
<div id="map_canvas" style="width: 100%; height: 100%;">
Some Other Stuff Here
</div>
</div>
<!-- configure and load dojo -->
<script src="./dojo/dojo.js" data-dojo-config="async:1, mblAlwaysHideAddressBar:true"></script>
<script>
require(["dojo"], function(dojo){
SetupViewA = function(){
// Doing it This way removes the back button
// document.getElementById('view_x_header').innerHTML = 'View A';
// This doesn't change anything
dojo.setAttr("view_x_header", 'label','View A')
}
SetupViewB = function(){
document.getElementById('view_x_header').innerHTML = 'View B';
}
})
require(["dojox/mobile/parser", "dojox/mobile", "dojox/mobile/deviceTheme", "dojox/mobile/compat", "dojo/domReady!"],
function(parser) {
parser.parse();
});
</script>
</body>
Отлично. Спасибо, что исправляет это. Раньше я старался не делать этого. Думаю, я имел в виду предыдущий API-интерфейс dojo? – user2855135
yes dijit.byId - до 1.7. они перенесли поиск виджета в свой собственный пакет, называемый реестром – tik27