如何在不使用Alloy时在Appcelerator(mobileweb)中设置DIV属性id

时间:2016-02-17 13:15:42

标签: appcelerator mobile-website appcelerator-titanium

我在跨平台解决方案(iOS,Android,MobileWeb)中使用Appcelerator。我希望能够在mobileweb中看到我的UI元素的id属性。我已经看到了如何使用Alloy设置id的示例,但我没有使用Alloy,我在JavaScript中编写了所有元素的脚本。

有人可以告诉我我必须应用于视图的属性,以便在html中生成的DIV中设置id。

以下是示例视图:

this.Viewer = Ti.UI.createScrollView(
{
    left:25,
    right:5,
    bottom:5,
    top: 0,
    width: this.App.Width - 40,
    height:  200,
    contentHeight: Ti.UI.SIZE,
    borderColor: "#333333",
    borderWidth: 3,
    horizontalWrap: false,
    layout:"vertical",
    scrollType: "vertical",
    scrollsToTop: true,
    showVerticalScrollIndicator: true,
    showHorizontalScrollIndicator: false,
    verticalBounce: false,
    visible: true,
    zIndex:100
});

以及生成的HTML

<div class="TiUIElement TiUIView TiLayoutsComposite" data-widget-id="Ti.UI.View:36" style="background-color: rgb(0, 255, 0); background-repeat: no-repeat; background-size: 100% 100%; border-color: rgb(51, 51, 51); border-width: 2px; left: 5px; top: 90px; width: 507px; height: 626px;"></div>

2 个答案:

答案 0 :(得分:2)

Titanium Mobile Web旨在模仿原生iOS和Android平台。由于iOS和Android没有DOM的概念,因此没有Titanium API来公开DOM。

换句话说,您不能在<div>上设置“ID”,甚至不知道<div>存在。

但是,如果你绝对需要,你可以这样做。所有UI元素都有一个名为domNode的属性。这仅适用于Titanium Mobile Web。为了在iOS或Android上运行您的应用,您需要对此进行说明。

var myButton = Ti.UI.createButton({ title: 'click me' });
if (Ti.Platform.name === 'mobileweb') {
    myButton.domNode.setAttribute('id', 'foo');
}

专业提示:Titanium Mobile Web无法访问浏览器的垃圾收集器,因此如果删除UI元素,则必须显式调用未记录的destroy()方法,以便事件将被断开,DOM节点将是毁灭,国家将被垃圾收集。

myButton.destroy && myButton.destroy()

答案 1 :(得分:0)

您应该只能将id属性添加到View创建功能中。

this.Viewer = Ti.UI.createScrollView(
{
    id: 'myView',   // <---- HERE IS YOUR ID
    name: 'myView', // <---- IF YOU NEED THE `NAME` ATTRIBUTE AS WELL
    left:25,
    right:5,
    bottom:5,
    top: 0,
    width: this.App.Width - 40,
    height:  200,
    contentHeight: Ti.UI.SIZE,
    borderColor: "#333333",
    borderWidth: 3,
    horizontalWrap: false,
    layout:"vertical",
    scrollType: "vertical",
    scrollsToTop: true,
    showVerticalScrollIndicator: true,
    showHorizontalScrollIndicator: false,
    verticalBounce: false,
    visible: true,
    zIndex:100
});