特定のノード内でクリックが発生するかどうかを判断しようとしています。これを行うための私のアイデアは、ノードを取得してそのすべての子孫をループし、各ノードがクリックイベントのターゲットであるかどうかをテストすることです。
YUI3で、指定したノードのすべての子孫を取得するための最良の方法がわかりません。yui3で複雑になる場合は、単純なJSでそれを実行できます。誰かがこれを行うためのより良い方法を持っているなら、私はまた別のアプローチを受け入れます。
助けてくれてありがとう。
特定のノード内でクリックが発生するかどうかを判断しようとしています。これを行うための私のアイデアは、ノードを取得してそのすべての子孫をループし、各ノードがクリックイベントのターゲットであるかどうかをテストすることです。
YUI3で、指定したノードのすべての子孫を取得するための最良の方法がわかりません。yui3で複雑になる場合は、単純なJSでそれを実行できます。誰かがこれを行うためのより良い方法を持っているなら、私はまた別のアプローチを受け入れます。
助けてくれてありがとう。
var isChild = wrapperNode.contains(targetNode);
http://developer.yahoo.com/yui/3/api/Node.html#method_contains
誰かが同じ問題を抱えている場合に備えて、私の現在のソリューション(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;
}
作成したいものは、クリックの委任に非常によく似ています。
私は YUI を使用していませんが、YUI3 でのイベント委譲については、次の URL で読むことができます。
状況を理解した場合、関心のあるノードには、クリックを受け取る可能性のあるノードがいくつか含まれています。そのような場合、クリック イベントは親ノードにバブル アップするため、そのノードでのクリックをリッスンするだけで十分です。
また、もっと複雑なことをしなければならない場合もあります。その場合、誤解していたら申し訳ありません。