0

特定のノード内でクリックが発生するかどうかを判断しようとしています。これを行うための私のアイデアは、ノードを取得してそのすべての子孫をループし、各ノードがクリックイベントのターゲットであるかどうかをテストすることです。

YUI3で、指定したノードのすべての子孫を取得するための最良の方法がわかりません。yui3で複雑になる場合は、単純なJSでそれを実行できます。誰かがこれを行うためのより良い方法を持っているなら、私はまた別のアプローチを受け入れます。

助けてくれてありがとう。

4

4 に答える 4

1

var isChild = wrapperNode.contains(targetNode);

http://developer.yahoo.com/yui/3/api/Node.html#method_contains

于 2011-03-23T06:13:24.513 に答える
0

誰かが同じ問題を抱えている場合に備えて、私の現在のソリューション(YUI3)。自由に改善を投稿してください。

   function isChild(targetNode, wrapperNode) {
        var descendants = wrapperNode.all('*');
        var counter = 0;
        descendants.each(function(node) {
            if(node == targetNode) {
                counter++;
            }
        });
        return (counter > 0) ? true : false;
    }
于 2011-03-18T18:18:47.310 に答える
0

作成したいものは、クリックの委任に非常によく似ています。

私は YUI を使用していませんが、YUI3 でのイベント委譲については、次の URL で読むことができます。

http://www.yuiblog.com/blog/2009/11/13/event-delegation-3/

http://kickballcreative.com/yui/demos/event-delegation/

于 2011-03-18T15:43:52.923 に答える
0

状況を理解した場合、関心のあるノードには、クリックを受け取る可能性のあるノードがいくつか含まれています。そのような場合、クリック イベントは親ノードにバブル アップするため、そのノードでのクリックをリッスンするだけで十分です。

また、もっと複雑なことをしなければならない場合もあります。その場合、誤解していたら申し訳ありません。

于 2011-03-22T18:31:27.597 に答える