Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Titanium 钛中不可预测的z指数_Titanium_Z Index_Appcelerator - Fatal编程技术网

Titanium 钛中不可预测的z指数

Titanium 钛中不可预测的z指数,titanium,z-index,appcelerator,Titanium,Z Index,Appcelerator,这个奇怪的虫子已经连续两天困扰着我了 我有5个视图,每个视图都包含一个滚动视图,并在单击时设置z索引。出于某种奇怪的原因,z-index为3的元素总是显示在z-index为4的元素的顶部,除非它是单击最后一个元素的第二个元素。到底发生了什么 请查看下面的代码。我用的是合金。显然不是生产代码,但我意识到它可能不是我的代码,所以我用下面的代码测试了它。非常感谢你的帮助 合金标记: <!-- index.xml --> <Alloy> <Window id="cont

这个奇怪的虫子已经连续两天困扰着我了

我有5个视图,每个视图都包含一个滚动视图,并在单击时设置z索引。出于某种奇怪的原因,z-index为3的元素总是显示在z-index为4的元素的顶部,除非它是单击最后一个元素的第二个元素。到底发生了什么

请查看下面的代码。我用的是合金。显然不是生产代码,但我意识到它可能不是我的代码,所以我用下面的代码测试了它。非常感谢你的帮助

合金标记:

<!-- index.xml -->
<Alloy>
  <Window id="container">
    <View id="v0" class="test" top="0">
      <ScrollView borderColor="green">
        <Label/>
      </ScrollView>
    </View>
    <View id="v1" class="test" top="40">
      <ScrollView borderColor="blue">
        <Label/>
      </ScrollView>
    </View>
    <View id="v2" class="test" top="80">
      <ScrollView borderColor="red">
        <Label/>
      </ScrollView>
    </View>
    <View id="v3" class="test" top="120">
      <ScrollView borderColor="purple">
        <Label/>
      </ScrollView>
    </View>
    <View id="v4" class="test" top="160">
      <ScrollView borderColor="teal">
        <Label/>
      </ScrollView>
    </View>
  </Window>
</Alloy>

以下是主要脚本:

// index.js
zs = [];

changeOrder = function(){
  for(var i=0; i<5; i++){
    z = zs[i];
    v = $["v#{i}"];
    // Set the supposedly correct order of view stack
    v.setZIndex(z);
    // Display the order for debugging
    v.children[0].children[0].setText(z);
};

$.v0.addEventListener("click", function(){
  zs = [5,4,3,0,1];
  changeOrder();
});

$.v1.addEventListener("click", function(){
  zs = [1,5,4,3,0];
  changeOrder();
});

$.v2.addEventListener("click", function(){
  zs = [0,1,5,4,3];
  changeOrder();
});

$.v3.addEventListener("click", function(){
  zs = [3,0,1,5,4];
  changeOrder();
});

$.v4.addEventListener("click", function(){
  zs = [4,3,0,1,5];
  changeOrder();
});

$.container.open()
//index.js
zs=[];
changeOrder=函数(){

for(var i=0;i看起来像是将PHP与javascript混合在一起,因此对view元素的引用是错误的。此外,视图设置的方式也是错误的,因此当您单击最上面的视图时,其他视图将变得不可访问,但是,这正是您尝试执行的操作。这是:

v = $["v#{i}"];
应该是:


v=$[“v”+i]

哦,对不起,我的错!我用CoffeeScript编程,并手动将代码转换为JavaScript以供发布。它应该具有与所描述的相同的效果,因为运行时引用似乎有效。没问题,我已确认它确实适用于上述修复。感谢您尝试代码!当您说它有效时,您指的是z索引w或者问题确实存在?考虑到我的自我,我很想知道这是我的错还是Appcelerator的错;PYour的逻辑是可靠的,很可能罪魁祸首在coffeescript和javascriptUpdate之间的翻译中丢失了一些东西:我相信这是钛的一个bug,Appcelerator的JIRA有人打开了这个问题并指出了它作为iOS bug上的钛。