4

タップ リスナー (赤い四角) とその上にボタン (緑) があるパネルがあります。このようなもの:

ここに画像の説明を入力

ボタンが押されたときに、赤い四角のタップリスナーを避けたいのですが、これを行う方法が見つかりません。私たちを手伝ってくれますか?

この例は私のコードではありませんが(コントローラー、データアイテムなどを使用しています)、同じ問題です:http://jsfiddle.net/6ah6U/

Ext.Viewport.add({
    xtype: 'panel',
    height: 300,
    width: 300,
    style: 'background: #ff0000',
    items: [{
        xtype: 'panel',
        height: 50,
        width: 50,
        style: 'background: #00ff00',
        listeners: {
            tap: function() {
                console.log('green tapped');
            },
            element: 'element'
        },
    }],
    listeners: {
        tap: function() {
            console.log('red tapped');
        },
        element: 'element'
    },
});

ありがとう!

4

2 に答える 2

0

まず、緑色の正方形に ID を与えることができます:

.......
height: 50,
width: 50,
id: 'green'
.......

listeners次に、親要素である赤い四角の内側で、緑の四角かどうかを確認できtargetます。tap event

listeners: {
    tap: function(e, node) {
        if(node.parentNode.id !== 'green') {
            console.log('red tapped');
        }
     },
     element: 'element'
}

この場合、Sencha Touch の HTML 構造に適切に従うために、 parentNodeを使用していることに注意してください。要素の検査ツールを使用して、それについて理解を深めることができます。

更新されたデモ: http://jsfiddle.net/6ah6U/1/

于 2013-03-13T13:08:07.573 に答える