我正在设计使用钛制加速器的抽认卡应用程序,最终目的是使用可滚动视图显示“包装”中的每张卡片,然后在点击单个卡片(即视图中的卡片)时,该卡片应绕其轴旋转(即翻转)以显示相反的内容。

您可以从下面的图表中看到我希望达到的目标。

不幸的是,当点击其中一个面板时,不是将其子视图动画化,而是将可滚动视图中的的最后一个孩子动画化。

我了解这与我在循环中分配变量这一事实有关,但是如果有人可以查看我的代码并告诉我我做错了那将是很好的。

在JQuery中看起来像这样

$(FrontView).click(function(){

$(this).parent().flip() //how do I access $(this) and $(this).parent() in Appcelerator?

});

这是我的加速器代码:
while(rows.isValidRow()){

         var FrontView = Ti.UI.createView({

          backgroundImage: '/global/card_bg.png',
          width: 295,
         height:297

    });

         var BackView = Ti.UI.createView({

          backgroundImage: '/global/card_bg.png',
          width: 295,
          height:297

    });


 var ControlView = Titanium.UI.createView({
 backgroundColor:"#333",
 bubbleParent : false,
 width: 295,
 height:297,
 top : 100

});

FrontView.addEventListener('singletap', function() {
        Ti.API.info('singletap');
        ControlView.animate({view:BackView,transition:Ti.UI.iPhone.AnimationStyle.FLIP_FROM_RIGHT});

    });

BackView.addEventListener('singletap', function() {
        Ti.API.info('singletap');
ControlView.animate({view:FrontView,transition:Ti.UI.iPhone.AnimationStyle.FLIP_FROM_LEFT});

    });


  $.scrollable_view.addView(ControlView);
  ControlView.add(BackView);
  ControlView.add(FrontView);

 rows.next();

} //endwhile

有人可以帮忙吗?

最佳答案

如果在事件回调中放入返回变量,则可以访问水龙头的来源。试试看,看看是否可行:

FrontView.addEventListener('singletap', function(e) {
    Ti.API.info('singletap');
    e.source.animate({view:BackView,transition:Ti.UI.iPhone.AnimationStyle.FLIP_FROM_RIGHT});
});

BackView.addEventListener('singletap', function(e) {
    Ti.API.info('singletap');
    e.source.animate({view:FrontView,transition:Ti.UI.iPhone.AnimationStyle.FLIP_FROM_LEFT});
});

关于ios - Titanium Appcelerator:如何定位$(this)元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14625111/

10-12 17:46